Redis學習筆記(一)— 基本命令和資料型別
阿新 • • 發佈:2019-06-04
MacOs環境
Redis基本命令
- 啟動服務:
redis-server
- 連線服務:
redis-cli
-h
指定主機/IP-p
指定埠-a
指定密碼
- 關閉服務:先
shutdown
儲存資料並關閉服務;再quit
退出服務 - 獲取伺服器資訊
- 啟動並連線服務之後,執行
info
- 或直接在shell中執行
redis-cli info
引數指定要獲取的某部分資訊,例如 info memory
用來獲取記憶體資訊- Server:關於Redis伺服器的基本資訊
- Clients:客戶端連線的狀態和指標
- Memory:大致的記憶體消耗指標
- Persistence:資料持久化相關的狀態和指標
- Stats:總體統計資料
- Replication:主從複製相關的狀態和指標
- CPU:CPU使用情況
- Cluster:Redis Cluster的狀態
- Keyspace:資料庫相關的統計資料
- 啟動並連線服務之後,執行
Redis資料型別
- 字串
set
設定鍵值對,已存在則覆蓋,成功返回OKSET <key> <value>
get
返回鍵對應的值,不存在則返回nilstrlen
返回鍵對應的值的長度,不存在則返回0append
向鍵的字串值末尾追加字串,返回新串長度setrange
更新字串值,偏移從0開始,返回新串長度setrange key 偏移值 newValue
setnx
設定鍵值對,已存在則返回0不覆蓋;成功返回1mset
、mget
一次性設定多個鍵值對MSET key value [key value...]
object encoding <key>
檢視字串編碼方式- int
- embstr 長度小於等於44位元組的字串
- raw 長度大於44位元組的字串
- 列表
lpush
左端插入rpush
右端插入
-lrange <list> 0 -1
獲取所有list的值- 列表索引可以按照從左到右指定為
0 ~ N-1
,也可以按照從右到左指定為-1 ~ -N
- 列表索引可以按照從左到右指定為
linsert <list> after v1 v2
在list列表的v1元素後面插入v2lindenx <list> 3
lpushx
、rpushx
列表存在時才將元素插入lpop
、rpop
左右兩端刪除,不存在返回nilltrim <list> index1 index2
刪除list中index1-index2之外的元素lset <list> index value
將list索引為index的值設定為valueblpop <list> time
、brpop <list> time
若list中無資料,阻塞time秒,0表示持續阻塞
- 雜湊
hmset <hashName> field name [field name...]
設定雜湊表hmget <hashName> field field...
從一個雜湊表中獲取多個欄位對應的值hget <hashName> field
從一個雜湊表中獲取某個欄位對應的值hexists <hashName> field
測試一個雜湊中是否存在某個欄位hgetall
獲取一個hash的所有欄位值(過大的雜湊容易造成阻塞)hscan key cursor [MATCH pattern] [COUNT number]
增量地迭代遍歷元素cursor
表示遊標,迭代開始位置MATCH
匹配滿足制定Glob表示式的欄位COUNT
指定每次迭代的返回元素個數,預設是10- 返回的新遊標為0時表示遍歷完成
hset
修改現有欄位的值或增加新的欄位hdel
刪除一個hash中的某個欄位hsetnx
欄位不存在時設定欄位
- 集合
- 唯一、無序
sadd set member [member...]
給集合新增元素sismember set member
檢測member是否在set中srem
從集合中刪除元素scard
獲取集合中元素數量- 集合運算
- 並集計算:
sunion
、sunionstore
- 交集計算:
sinter
、sinterstore
- 差集計算:
sdiff
、sdiffstore
- 不帶store直接返回操作結果;反之將結果存到一個指定的鍵中
- 並集計算:
- 有序集合
zadd
新增集合元素zrevrange
獲取集合排序zincrby
對集合中某個元素增加權重zrevrank
檢視元素排名zscore
檢視元素權重zunionstore sumName 2 set1 set2 weights 1 2
合併兩個集合排名- 第一個2指合併的集合數目
- weights後面的數字指集合權重的倍數,set1的權重值乘1,set2的權重值乘2
- HyperLogLog
pfadd
增加數量pfcount
計算非重複總量
- Geo
geoadd
增加經緯度座標geopos
獲取指定成員座標georadius
獲取指定範圍內的座標,中心點由輸入的經緯度指定georadiusbymember
獲取指定範圍內的座標,中心點由Geo集合中的成員指定geodist
比較兩個座標點的距離
- 鍵管理
dbsize
獲取Redis中鍵的個數keys *
、scan number
獲取Redis中的所有鍵del
、unlink
刪除Redis中的鍵exists
判斷一個鍵是否存在type
獲取一個鍵的資料型別rename
重新命名一個鍵- 最佳實踐:如果目標鍵已存在,則先unlink再重新命名