Redis學習筆記

Mac安裝Redis

使用Homebrew

若是已經安裝能夠忽略,沒有安裝的執行官網命令便可安裝git

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製代碼

使用Homebrew安裝Redis

  • 安裝命令
brew install redis
複製代碼
  • 查看軟件安裝及配置文件位置
Homebrew安裝的軟件會默認在/usr/local/Cellar/路徑下;

redis的配置文件redis.conf存放在/usr/local/etc路徑下。
複製代碼

一般咱們會經過配置文件啓動redis,而不是直接啓動redis,因此進入到/usr/local/etc 經過命令過濾並複製一份配置文件出來github

// 默認端口仍是6379,因此文件名爲reids-6379.conf
cat redis.conf | grep -v "#" |grep -v "^$" > reids-6379.conf
複製代碼

更配配置文件中的端口號,從而達到經過多個配置文件啓動多個redisredis

這裏咱們更改的命令有
daemonize no "更改成" daemonize yes  // 後臺啓動redis
logfile "" "更改成" logfile "6379.log" // 日誌文件
dir "更改成" dir /usr/local/var/db/redis/  // log文件你本身想放哪裏都行,本身方便。
複製代碼
  • 啓動redis服務
方法一: brew除了能夠幫助咱們安裝軟件之外,還能夠幫助咱們啓動軟件
brew services start redis

方法二: 
redis-server /usr/local/etc/redis.conf
複製代碼
  • 查看redis服務進程

咱們能夠經過下面命令查看redis是否正在運行數組

ps axu | grep redis
複製代碼
  • redis-cli鏈接redis服務

redis默認端口號6379,默認auth爲空,輸入如下命令便可鏈接ruby

redis-cli -h 127.0.0.1 -p 6379
複製代碼
  • 關閉redis服務
優雅的關閉 redis-cli shutdown 或者殺死 sudo pkill redis-server

或這使用 kill -s 9 xxxxx號 殺死指定服務
複製代碼
  • edis.conf配置文件說明
redis默認是前臺啓動,若是咱們想以守護進程的方式運行(後臺運行)
能夠在redis.conf中將daemonize no,修改爲yes便可。
複製代碼

Redis中數據類型介紹

Redis 數據類型(5中經常使用)bash

  • string
String
複製代碼
  • hash
HashMap
複製代碼
  • list
LinkedList
複製代碼
  • set
HashSet
複製代碼
  • sorted_set
TreeSet
複製代碼

string類型的命令及介紹

  1. 存儲的數據:單個數據,最簡單的數據存儲類型,也是最經常使用的數據存儲類型。
  2. 存儲數據的格式:一個存儲空間保存和一個數據。
  3. 存儲內容:一般使用字符串,若是字符串以整數的形式展現,能夠做爲數字操做使用。
string 類型數據的基本操做
  • 添加/修改數據
set key value
複製代碼

注意:數據添加成功會返回 ok app

  • 獲取數據
get key
複製代碼

注意:獲取的數據若是存在會返回數據,不存在返回 nullcurl

  • 刪除數據
del key
複製代碼

注意:刪除的數據存在而且刪除成功會返回 1,刪除的數據不存在返回 0優化

  • 添加/修改多個數據
mset key1 value1 key2 value2 ...
複製代碼

  • 獲取多個數據
mget key1 key2 ...
複製代碼

  • 獲取數據字符個數(字符串長度)
strlen key
複製代碼

  • 追加信息到原始信息後部(若是原始信息存在就追加,不然就建立)
append key value
複製代碼

注意: 返回值是追加後的字符串長度 ui

關於單條指令操做與多條指令操做的選擇,一般考慮業務場景,數據量小一次幾條數據的採用單條指令沒問題,若是一次發送數據上百萬上億的。選擇多條指令並要對數據進行切割,否則請求時間也是比較長的,咱們將一百萬條數據切割爲十條十萬的數據在進行多條指令存儲


hash類型的命令及介紹

存儲的困惑

對象類數據的存儲若是有較頻繁的更新需求操做會顯得很笨重

  • 新的存儲需求
對一系列存儲的數據進行編組,方便管理,典型應用存儲對象信息
複製代碼
  • 須要的存儲結構
一個存儲空間保存多個鍵值對數據
複製代碼
  • hash類型
底層使用哈希表結構實現數據存儲
複製代碼

hash存儲結構優化:

  1. 若是field數量較少,存儲結構優化爲類數組結構
  2. 若是field數量多,存儲結構使用hashMa結構
hash類型數據的基本操做
  • 添加/修改數據
hset key field value // 存儲
複製代碼

  • 添加/修改多個數據
hmset key fiedl1 value1 fiedl2 value2 ...
複製代碼

  • 獲取數據
hget key field    // 獲取指定field的值
hgettall key      // 獲取全部的
複製代碼

  • 獲取多個數據
hmget key field1 field2 ...
複製代碼

  • 刪除數據
hdel key field1 field2
複製代碼

  • 獲取哈希表中字段的數量
hlen key
複製代碼

  • 獲取哈希表中是否存在指定的字段
hexists key field  // 存在返回1,不然返回0
複製代碼

  • 獲取哈希表中全部的字段名或字段值
hkeys key    // 獲取當前表中全部的字段
hvals key    // 獲取當前表中全部的字段值 
複製代碼

  • 設置指定字段的數值數據增長指定範圍的值
hincrby key field increment  // 設置指定表中指定字段的數值增長increment

hincrbyfloat key field increment //設置指定表中指定字段的數值增長increment(能夠爲小數)
複製代碼

  • 設置指定表中字段的數值。若是存在就什麼都不作,不然就添加
hsetnx key field value
複製代碼

注意事項:

  • hash類型下的value只能存儲字符串,不容許存儲其餘數據類型,不存在嵌套現象,若是數據未獲取到,對應的值爲(nil)
  • 每一個hash能夠存儲2的32次冪 - 1個鍵值對
  • hash類型十分貼近對象的數據存儲形式,而且能夠靈活添加刪除對象屬性, 但hash設計初衷不是爲存儲大量對象而設計的,切記不可濫用,更不可將hash做爲對象列表使用
  • hgetall操做能夠獲取所有屬性,但若是內部field過多,遍歷總體數據效率就會很低,有可能成爲數據訪問瓶頸。

持續總結更新中

相關文章
相關標籤/搜索