原生redis命令

一、 redis-cli 連接 redis

進入redis安裝目錄

cd /usr/local/bin

進入redis客戶端

./redis-cli -p 6379

-h 用於指定 ip

-p 用於指定埠

-a 用於指定認證密碼

 

退出客戶端

quit

指定 database,默認16個資料庫

select 3

 

二、 redis-cli 操作 redis 五種數據類型

1、操作 String

單條操作

SET  key  value             //存入字元串鍵值對
GET  key                 //獲取一個字元串鍵值
DEL  key  [key ...]         //刪除一個鍵

 

 

 批量操作

MSET  key  value [key value ...]     //批量存儲字元串鍵值對
MGET  key  [key ...]         //批量獲取字元串鍵值

 

 

存入一個不存在的字元串鍵值對,返回1代表成功,返回0代表失敗;可用於作為分散式鎖

SETNX  key  value         //存入一個不存在的字元串鍵值對

 

 

 設置一個鍵的過期時間(秒)

EXPIRE  key  seconds

 

 

 原子加減,可用於統計閱讀量,生成分散式系統全局序列號等功能

INCR  key             //將key中儲存的數字值加1

 

DECR  key             //將key中儲存的數字值減1

 

 

 

 

INCRBY  key  increment      //將key所儲存的值加上increment

 

 

 

DECRBY  key  decrement     //將key所儲存的值減去decrement

 

 

 

 2、操作 hash

單條操作

HSET  key  field  value             //存儲一個哈希表key的鍵值
HGET  key  field                 //獲取哈希表key對應的field鍵值
HDEL  key  field  [field ...]         //刪除哈希表key中的field鍵值

 

 

 批量操作

HMSET  key  field  value [field value ...]     //在一個哈希表key中存儲多個鍵值對
HMGET  key  field  [field ...]             //批量獲取哈希表key中多個field鍵值
HLEN  key                          //返回哈希表key中field的數量
HGETALL  key                         //返回哈希表key中所有的鍵值

 

 

 

存入一個不存在的hash鍵值對,返回1代表成功,返回0代表失敗;可用於作為分散式鎖

HSETNX  key  field  value         //存儲一個不存在的哈希表key的鍵值

 

 

 

為哈希表key中field鍵的值加上增量increment

HINCRBY  key  field  increment

 

 

 Hash結構優缺點

優點
1)同類數據歸類整合儲存,方便數據管理
2)相比string操作消耗記憶體與cpu更小
3)相比string儲存更節省空間

缺點
過期功能不能使用在field上,只能用在key上
Redis集群架構下不適合大規模使用

3、操作 list

添加操作(可用於微博消息和微信公號消息)

LPUSH  key  value [value ...]         //將一個或多個值value插入到key列表的表頭(最左邊)
RPUSH  key  value [value ...]         //將一個或多個值value插入到key列表的表尾(最右邊)
LRANGE  key  start  stop        //返回列表key中指定區間內的元素,區間以偏移量start和stop指定

 

 

 彈出操作

LPOP  key            //移除並返回key列表的頭元素
RPOP  key            //移除並返回key列表的尾元素
BLPOP  key  [key ...]  timeout    //從key列表表頭彈出一個元素,若列表中沒有元素,阻塞等待                    timeout秒,如果timeout=0,一直阻塞等待
BRPOP  key  [key ...]  timeout     //從key列表表尾彈出一個元素,若列表中沒有元素,阻塞等待                    timeout秒,如果timeout=0,一直阻塞等待

 

 

 

 

 4、操作 set

Set常用操作
SADD  key  member  [member ...]            //往集合key中存入元素,元素存在則忽略,若key不存在則新建
SREM  key  member  [member ...]            //從集合key中刪除元素
SMEMBERS  key                    //獲取集合key中所有元素
SCARD  key                    //獲取集合key的元素個數
SISMEMBER  key  member            //判斷member元素是否存在於集合key中
SRANDMEMBER  key  [count]            //從集合key中選出count個元素,元素不從key中刪除
SPOP  key  [count]                //從集合key中選出count個元素,元素從key中刪除

Set運算操作
SINTER  key  [key ...]                 //交集運算
SINTERSTORE  destination  key  [key ..]        //將交集結果存入新集合destination中
SUNION  key  [key ..]                 //並集運算
SUNIONSTORE  destination  key  [key ...]        //將並集結果存入新集合destination中
SDIFF  key  [key ...]                 //差集運算
SDIFFSTORE  destination  key  [key ...]        //將差集結果存入新集合destination中

 

 

 常用操作可用於微信小程式抽獎,微信微博點贊,收藏等場景

集合操作實現微博微信關注模型

5、操作ZSet有序集合

ZSet常用操作
ZADD key score member [[score member]…]    //往有序集合key中加入帶分值元素
ZREM key member [member …]        //從有序集合key中刪除元素
ZSCORE key member             //返回有序集合key中元素member的分值
ZINCRBY key increment member        //為有序集合key中元素member的分值加上increment 
ZCARD key                //返回有序集合key中元素個數
ZRANGE key start stop [WITHSCORES]    //正序獲取有序集合key從start下標到stop下標的元素
ZREVRANGE key start stop [WITHSCORES]    //倒序獲取有序集合key從start下標到stop下標的元素

Zset集合操作
ZUNIONSTORE destkey numkeys key [key ...]     //並集計算
ZINTERSTORE destkey numkeys key [key …]    //交集計算

Zset集合操作實現排行榜

 

5、其他高級命令

keys:全量遍歷鍵,用來列出所有滿足特定正則字元串規則的key,當redis數據量比較大時, 性能比較差,要避免使用

 

 

 scan:漸進式遍歷鍵

scan 參數提供了三個參數,第一個是 cursor 整數值(hash桶的索引值),第二個是 key 的正則模式, 第三個是一次遍歷的key的數量(參考值,底層遍歷的數量不一定),並不是符合條件的結果數量。

第 一次遍歷時,cursor 值為 0,然後將返回結果中第一個整數值作為下一次遍歷的 cursor。一直遍歷 到返回的 cursor 值為 0 時結束;

注意:但是scan並非完美無瑕, 如果在scan的過程中如果有鍵的變化(增加、 刪除、 修改) ,那 么遍歷效果可能會碰到如下問題: 新增的鍵可能沒有遍歷到, 遍歷出了重複的鍵等情況, 也就是說 scan並不能保證完整的遍歷出來所有的鍵, 這些是我們在開發時需要考慮的。

 

 

 

Info:查看redis服務運行資訊,分為 9 大塊,每個塊都有非常多的參數,這 9 個塊分別是:

  • Server 伺服器運行的環境參數
  • Clients 客戶端相關資訊
  • Memory 伺服器運行記憶體統計數據
  • Persistence 持久化資訊
  • Stats 通用統計數據
  • Replication 主從複製相關資訊
  • CPU CPU 使用情況
  • Cluster 集群資訊
  • KeySpace 鍵值對統計數量資訊

 

 

 

 

 

 退出redis服務: 

  • pkill redis‐server 
  • kill 進程號 
  • redis‐cli shutdown

 

Tags: