今天簡單總結一下redis 常用命令
redis 常用資料結構
string:字串型別是redis最基礎的資料結構,首先鍵是字串型別,而且其他幾種結構都是在字串型別基礎上構建的
string特性:
但最大不能超過512m;
高效的計算字串長度(時間複雜度為o(1));
二進位制安全;
高效的追加字串操作;
string常見命令操作
set key value [expiration ex seconds|px milliseconds]
[nx|xx]
#命令格式
set name ccbobe
setnx name bobe
setex key seconds value # 設定key 值為value 並設定過期時間為 seconds 秒
例如:setex name 20 ccbobe
mget key [key ...]
#批處理獲取多key
get key #獲取key 鍵的value值
get name
setnx key value #如果key存在則不發生set,否則設定 key的值為value
set 集合 :
set 是 string 型別的無序集合。集合成員是唯一的,集合中不能出現重複的資料。
集合中最大的成員數為 2^32 - 1 (4294967295, 每個集合可儲存40多億個成員)。
常用命令操作
向set 集合中新增元素
sadd key member [member …]
查詢集合中有幾個元素
scard key 時間複雜度 o(1)
smembers key
列舉set集合中元素
sismember key member
判斷 member 元素是否是集合 key 的成員(存在返回1 否則返回0)
spop key
移除並返回集合中的乙個隨機元素
smove source destination member
將 member 元素從 source 集合移動到 destination 集合
srem key member [ member ]
移除集合中乙個或多個成員
sorted set: 有序集合
redis有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。
集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是o(1)。 集合中最大的成員數為 2^32 - 1 (4294967295, 每個集合可儲存40多億個成員)。
zadd key [nx|xx] [ch] [incr] score member [score member ...]
向有序集合新增乙個或多個成員,或者更新已存在成員的分數
zcard key
獲取有序集合的成員數
zcount key min max
計算在有序集合中指定區間分數的成員數
zincrby key increment member
有序集合中對指定成員的分數加上增量 increment
zrem key member [member ...]
移除有序集合中的乙個或多個成員
zscore key member
返回有序集中,成員的分數值
hash:雜湊
hset key field value
將雜湊表 key 中的字段 field 的值設為 value 。
hdel key field1 [field2]
刪除乙個或多個雜湊表字段
hexists key field
檢視雜湊表 key 中,指定的字段是否存在。
hlen key
獲取雜湊表中字段的數量
hvals key
獲取雜湊表中所有值
hsetnx key field value
只有在字段 field 不存在時,設定雜湊表字段的值。
list:列表
lpush key value [value ...]
將乙個或多個值插入到列表頭部
lpop key
移出並獲取列表的第乙個元素
blpop key [key ...] timeout
移出並獲取列表的第乙個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
brpop key [key ...] timeout
移出並獲取列表的最後乙個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
lindex key index
通過索引獲取列表中的元素
linsert key before|after pivot value
在列表的元素前或者後插入元素
lrem key count value
移除列表元素:
count > 0 : 從表頭開始向表尾搜尋,移除與 value 相等的元素,數量為 count 。
count < 0 : 從表尾開始向表頭搜尋,移除與 value 相等的元素,數量為 count 的絕對值。
count = 0 : 移除表中所有與 value 相等的值。
lrange key start stop
獲取列表指定範圍內的元素
lset key index value
通過索引設定列表元素的值
其他常用命令
redis 事務
multi
// 事務命令佇列
exec
它先以 multi 開始乙個事務, 然後將多個命令入隊到事務中, 最後由 exec 命令觸發事務, 一併執行事務中的所有命令。
操作示例:
127.0.0.1:6379> multi
ok127.0.0.1:6379>
set name ccbobe
queued
127.0.0.1:6379> lpush list 1 2 3
queued
127.0.0.1:6379>
exec
1) ok
2)(integer) 12
redis 發布訂閱
redis 發布訂閱(pub/sub)是一種訊息通訊模式:傳送者(pub)傳送訊息,訂閱者(sub)接收訊息。
發布命令
publish channel message
消費訊息
subscribe channel [channel …]
# 發布訊息
127.0.0.1:6379> publish chat hello
(integer) 1
# 消費訂閱訊息
127.0.0.1:6379> subscribe chat
reading messages... (press ctrl-c to quit)
1)"subscribe"
2)"chat"
3)(integer) 1
1)"message"
2)"chat"
3)"hello"
redis hyperloglog 演算法
hyperloglog 是用來做基數統計的演算法,hyperloglog 的優點是,在輸入元素的數量或者體積非常非常大時,計算基數所需的空間總是固定 的、並且是很小的。
每個 hyperloglog 鍵只需要花費 12 kb 記憶體,就可以計算接近 2^64 個不同元素的基 數。
# 向其中hp資料結構中新增元素
pfadd key element [element ...]
如果至少更改了1個hyperloglog內部暫存器,則為1。否則為0
pfcount key [key ...]
統計獲取key 中元素個數
pfmerge destkey sourcekey [sourcekey ...]
pfmerge 命令將多個 hyperloglog 合併為乙個hyperloglog ,合併後的hyperloglog的基數估算值是通過對所有給定hyperloglog 行並集計算得出的。
Redis常用命令
1 keys 返回滿足給定pattern的所有key。例如 keys 返回所有鍵 2 exists 確認乙個key是否存在。例如 exists age 3 del 刪除指定key。例如 del age 4 expire 設定乙個key的過期時間。例如 expire age 100 單位 秒 5 pe...
redis常用命令
redis cli p 6079 登陸redis,埠為6079 auth psssword 如果redis帶密碼,則執行上邊一行,password替換為你的密碼。src redis cli p 6380 keys wei xargs src redis cli p 6380 del 批量刪除埠為63...
Redis常用命令
啟動 redis 服務 src redis server或者src redis server redis.conf src redis server redis.conf 1 log.log 2 errlog.log 1為標準輸出,2為錯誤輸出 將 redis 作為 linux 服務隨機啟動 vi ...