Redis支持五種的數(shù)據(jù)類型
1、String
2漏健、hash
3古掏、list
4、set
5幽告、sorted set
String數(shù)據(jù)類型
getrange key start end:返回key中字符串值的子字符
setrange key offset value:用value參數(shù)覆寫給定Key所存儲(chǔ)的字符串值,從offset開(kāi)始
strlen:獲取字符串長(zhǎng)度
set key value:設(shè)置key value
get key:獲取value
setex key value: 原子方式設(shè)置key value
setbit key offset value:設(shè)置字符串offset位上的值裆甩,為0或1
hash數(shù)據(jù)類型
hlen :獲取長(zhǎng)度
hget key field :獲取值
hset key field value:單個(gè)添加
hmset key field1 value1 field2 value2 ..一起添加
hexists key field判斷鍵是否存在
hdel key field刪除key中的一個(gè)field
hkeys key 獲取所有哈希表中的字段
hvals key 獲取哈希表中所有的值
hsetnx key field value :當(dāng)key中field不存在冗锁,設(shè)置這個(gè)字段的值
list雙端鏈表數(shù)據(jù)類型
llen :輸出列表長(zhǎng)度
lpush:左輸入
rpush:右輸入
blpop key timeout:移除并獲取列表第一個(gè)元素, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止嗤栓。(假如在指定時(shí)間內(nèi)沒(méi)有任何元素被彈出冻河,則返回一個(gè) nil 和等待時(shí)長(zhǎng)箍邮。 反之,返回一個(gè)含有兩個(gè)元素的列表叨叙,第一個(gè)元素是被彈出元素所屬的 key 锭弊,第二個(gè)元素是被彈出元素的值。)
brpop key timeout:移除并獲取列表最后一個(gè)元素摔敛, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止廷蓉。
lpop:簡(jiǎn)單移除并獲取第一個(gè)元素
rpop:簡(jiǎn)單移除并獲取最后一個(gè)元素
lindex key index:通過(guò)索引獲取列表中的元素
lset key index value:通過(guò)索引設(shè)置列表元素的值
lrange key start stop:獲取列表指定范圍內(nèi)的元素
ltrim key start stop:對(duì)列表進(jìn)行修剪全封,只保留區(qū)間內(nèi)的元素
rpoplpush source targe:將source鏈表最后一個(gè)元素彈出并且插入到targe鏈表中马昙,最后返回這個(gè)元素的值
Set:String類型的無(wú)序集合,且不允許重復(fù)元素
sadd key value:添加元素
srem key member1 member2:移除集合中一個(gè)或多個(gè)成員
scard key :獲取集合的成員數(shù)
smembers key :獲取集合所有的成員
sismember key member:獲取member是否是key中的
sdiff key1 key2:獲取多個(gè)key的差集
sinter key1 key2:獲取多個(gè)key的交集
sunion key1 key2:獲取多個(gè)key的并集
smove sourve targe member:將sourve中的member移到targe中
spop key:移除并且返回集合中一個(gè)隨機(jī)元素
srandmember key [count]:返回集合中一個(gè)或多個(gè)隨機(jī)數(shù)
Sorted Set:有序集合
//與set類似刹悴,不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)行楞。
//redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序。
zadd key score1 member [score2 member2]:向有序集合添加一個(gè)或多個(gè)成員土匀,或者更新已存在成員的分?jǐn)?shù)
zrem key member [member..]移除有序集合中的一個(gè)或多個(gè)成員
/按照正常分?jǐn)?shù)從低到高排序/
zrange key start stop :返回有序集合指定區(qū)間內(nèi)的成員(默認(rèn)從低到高排序)(start:0;end:-1代表查詢這個(gè)Key所有的成員)
zrangebyscore key min max[withscores]:通過(guò)分?jǐn)?shù)返回有序集合指定區(qū)間內(nèi)的成員
zrank key member:返回該成員的索引
/rev代表的是reverse(反轉(zhuǎn))/
zrevrange key start stop[withscores]:返回有序集合指定區(qū)間內(nèi)的成員子房,按照分?jǐn)?shù)從高到低排序
zrevrangebyscore key max min[withscores]:返回有序集合指定分?jǐn)?shù)區(qū)間內(nèi)的成員,分?jǐn)?shù)從高到低排序
zrevrank key member:返回有序集合中指定成員的排名就轧,有序集合是按分?jǐn)?shù)(從大到兄ず肌)排序
zcard key :獲取有序集合的成員數(shù)
zcount key min max:計(jì)算有序集合指定區(qū)間分?jǐn)?shù)的成員數(shù)
zscore key member:返回該成員的分?jǐn)?shù)值
zremrangebyrank key start stop:移除有序集合中給定排名區(qū)間的所有成員
zremrangebyscore key min max:移除給定分?jǐn)?shù)區(qū)間的所有成員
zinterstore targe numkeys(交集的key個(gè)數(shù)) key1 key2..:計(jì)算給定一個(gè)或者多個(gè)有序集的交集并將結(jié)果存儲(chǔ)到targe中
注意:此時(shí)交集結(jié)果成員的分?jǐn)?shù)為多個(gè)有序集分?jǐn)?shù)的總和
zunionstore targe numkeys key1 keys2:并集,與交集類似妒御,最后的分?jǐn)?shù)也是多個(gè)有序集分?jǐn)?shù)的總和
注意:有序集合的redis沒(méi)有提供多個(gè)集合差集的方法解愤,這是跟無(wú)序集合的區(qū)別之一
redis發(fā)布訂閱(redis用作消息隊(duì)列)
1、subscribe channel[channel..] 訂閱一個(gè)或者多個(gè)頻道的信息
2乎莉、publish channel message 將消息發(fā)送到指定的頻道
3送讲、unsubscribe channel [channel ..] 退訂一個(gè)或者多個(gè)頻道的信息
4、psubscribe pattern [pattern ...] 訂閱一個(gè)或者多個(gè)符合給定模式的頻道
5惋啃、punsubscribe pattern [pattern ..] 退訂一個(gè)或者多個(gè)符合給定模式的頻道
6哼鬓、pubsub subcommand [argument [argument]] 查看訂閱與發(fā)布系統(tǒng)狀態(tài)
參考鏈接:https://blog.csdn.net/qq_34212276/article/details/78455004
redis事務(wù)
redis事務(wù)可以一次執(zhí)行多個(gè)命令,并且?guī)в袃蓚€(gè)重要的保證:
1边灭、redis使用multi開(kāi)始一個(gè)事務(wù)异希,然后開(kāi)始寫redis命令,最后通過(guò)exec命令執(zhí)行事務(wù)
exec命令執(zhí)行事務(wù)的過(guò)程中有任意命令執(zhí)行失敗绒瘦,其余命令依然被執(zhí)行称簿,之前執(zhí)行的命令也不會(huì)回滾
2、事務(wù)執(zhí)行過(guò)程中椭坚,其他客戶端提交的命令請(qǐng)求不會(huì)插入到事務(wù)執(zhí)行命令序列中
我們知道單個(gè)redis命令的執(zhí)行是原子性的予跌,但是redis事務(wù)不具備原子性機(jī)制,可以理解為一個(gè)打包批量執(zhí)行的腳本
方法:
1善茎、discard:取消事務(wù)券册,放棄執(zhí)行事務(wù)塊內(nèi)所有命令
2、exec:執(zhí)行所有事務(wù)塊內(nèi)的命令
3、multi:標(biāo)記一個(gè)事務(wù)塊的開(kāi)始
4烁焙、unwatch:取消watch命令對(duì)所有Key的監(jiān)視
5航邢、watch key :監(jiān)視一個(gè)或者多個(gè)key,如果在事務(wù)執(zhí)行之前這個(gè)key被其他命令改動(dòng)骄蝇,那么事務(wù)將被打斷