Redis Remote Dictionary Server 遠程字典服務器
功能
緩存(當空間達到限制時,可以按照一定規則,淘汰部分數據)
隊列(支持阻塞式讀取)
訂閱/發布(可以將其做出聊天室)
特點
內存存儲
可以持久化
數據類型豐富
單線程
命令都是原子操作
命令簡單
常用命令
keys pattern 獲取符合規則的key列表
注:? 一個字符
* 0到多個字符
[] 方括號中的任意字符(‘-’表示范圍)
exists key 該key是否存在(1存在,0不存在)
del key ... 刪除一個或多個key(不支持通配符,但可以通過Linux命令來達到模式匹配的目的)
type key 獲取key的類型
字符串操作 命名 “對象類型:ID:對象屬性”
set key value (可以覆蓋同名key 無論是什么類型)
get key
incr key(當value為整數時+1,并返回+1后的值;若不是整數error;沒有該key時,默認原先值為0)
自增ID 設立一個key 命名為 “對象類型:count”
位操作 存儲只有幾種值得字段特別省空間
散列表 命名 “對象類型:ID” (解決hash沖突時用拉鏈法)
hset key field value (若field存在,即更新)(hsetnx field存在 不操作)
hget key field
hmset key field value [...]
hmget key field [...]
hgetall key
hincrby key field increment (能增加浮點數嗎?)
hdel key field []
hkeys key 返回全部鍵
hvals key 返回全部值
hlen key 字段數量
列表(內部實現是用鏈表,兩頭快中間慢)(適用于新鮮事、日志系統)
lpush key value [...] 左邊添加
rpush key value [...] 右邊添加
lpop key 左彈出
rpop key 右彈出
llen key 列表中有多少元素
lrange key start stop 返回(從左開始)start stop之間的片段(0表示左邊第一個)(為負數是表示從右開始,-1表示右邊第一個)
ltrim key start stop 截取start stop之間的片段(不返回)
lrem key count value
count>0 刪除左開始前count個值為value的元素
count=0 刪除所有值為value元素
count<0 刪除右開始前count個值為value的元素
lindex key index 返回指定位置的元素(index為位置)
linsert key before/after pivot value 從左往右查找值為pivot的元素,更具before/after決定將value插在它的前面還是后面
rpoplpush source destination 從源的右邊彈出,再將該元素壓入目標的左邊
集合(用無value的散列表實現)
sadd key member [...] 添加元素
srem key member [...] 刪除元素
smembers key 返回全部元素
sismember key member 是否在集合中
sdief keyA [keyX ...] 集合差集(元素屬于A且不屬于后面的集合)
sinter keyA [keyX ...] 集合交集(所有集合的公共部分)
sunion keyA [keyX ...] 集合并集(所有集合的所有部分)
scard key 集合元素的個數
sdiefstore destination keyA [keyX ...] 將集合運算結果放入destination中
sinterstore destination keyA [keyX ...]
sunionstore destination keyA [keyX ...]
spop key 從集合中彈出一個元素
srandmember key [count] 從集合中隨機得到count個元素
count不寫默認為1
count正數 返回不重復的
count負數 返回可重復的
不是很隨機,原理是先隨機找一個拉鏈,再隨機找拉鏈上的值
有序集合(散列表和跳躍表實現的,讀中間值也快,耗內存)
zadd key score member [...] 增加分數和成員(+inf 正無窮 -inf 負無窮)
zscore key member 得到元素的分數
zrange key start stop [withscores] 將start 和 stop之間的元素 從小到大排列輸出 (帶著后面的參數就會輸出分數)
zrevrange 從大到小輸出
zrangbyscore key min max [withscores] [limit offset count] 得到分數在min 到max之間的元素
在min、max前加"("表示不包括這個值
limit 偏移offset開始 輸出count個
zincrby key increment member 為某個成員加上increment分 ,increment可為負
zcard key 獲得數量
zcount key min max 獲得分數在某個范圍之內的數量
zrem key member [...] 刪除一個或多個元素
zremrangebyscore key min max 按分數刪除元素
zremrangebyrank key start stop 按排名刪除元素
zrank key member 從小到大(最小為0)得到member的排名
zrevrank key member 從大到小
zinterstore destination numkeys(集合數量) key[...] [weights [各個集合的權重]] [重復值計算方式]
總結:
1為成功 0為失敗
長度 列表為len 集合為card
刪除 rem
位置 0 表示正著第一個 -1 表示負的第一個
增加值 incrby 可為負(列表、集合沒有)
順序:默認 從左到右 從小到大
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
