這篇文章主要介紹“Redis有哪些數據類型”,在日常操作中,相信很多人在Redis有哪些數據類型問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Redis有哪些數據類型”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Redis數據類型
redis的命令是忽略大小寫的
一、 String類型
賦值
> set name 王五
> select 1
> set name zhangsan
> get name
設置/獲取多個鍵值
> mset age 25 gender male city 杭州
> get age
> mget age city
取值再賦值
> getset s2 111
> getset s2 222
尾部追加值
> append name hello
刪除
> del s2
數值增減
遞增
當存儲的字符串是整數時,使用命令incr使當前鍵值加1,返回遞增后的值
> incr num
指定步長
> incrby num 2
遞減
> decr num
> decrby num 2
應用場景,存儲商品信息
> incr items:id
二、Hash類型
hset命令不區分插入和更新操作,插入操作返回1,更新返回0
一次設置一個字段
> hset user name lizi
一次設置多個字段
> hmset user age 25 gender male
當字段不存在時賦值,存在則不執行任何操作
> hsetnx user address hangzhou
一次獲取一個字段
> hget user name
一次獲取多個字段
> hmget user name age
一次獲取所有字段值
> hgetall user
刪除一個或多個字段,返回被刪除的字段個數
> hdel user age address
數字增加
> hset user age 20
> hincrby user age 2
> hget user age
判斷字段是否存在
> hexists user age
只獲取字段名或字段值
>hkeys user
>hvals user
獲取字段數量
> hlen user
應用場景,存儲商品信息
> hmset items:1001 id 1001 name iphonex price 1999 color black
> hmset items:1002 id 1002 name iphonex price 1999 color black
獲取商品信息
> hget items:1001 name
> hgetall items:1001
三、List類型
向列表左邊添加元素
> lpush list 0 9 8
> lpush list:1 1 2 3 4
向列表右邊添加元素
> rpush list:1 5 6 7
查看列表
> lrange list:1 0 3
> lrange list:1 0 -1 讀所有
從列表兩端彈出元素,返回移除的元素值
> lpop list:1
> rpop list:1
獲取列表中元素的個數
> llen list:1
刪除列表中指定的值
LREM命令會刪除列表中前count個值為value的元素,返回實際刪除的元素個數。根據count值的不同,該命令的執行方式會有所不同:
當count>0時, LREM會從列表左邊開始刪除。
當count<0時, LREM會從列表后邊開始刪除。
當count=0時, LREM刪除所有值為value的元素。
> lrem list:1 1 5
> lrem list:1 -1 5
> lrem list:1 0 5
獲取指定索引的元素值,索引從0開始
> lindex list:1 0
設置指定索引的元素值
> lset list:1 0 11
保留列表指定范圍的元素
> ltrim list:1 0 2
向指定元素值的前后插入元素,返回列表的元素個數
> linsert list:1 before 2 10
> linsert list:1 after 2 10
將一個元素從一個列表移到另一個列表
> rpoplpush list:1 list:2
應用場景,商品評論
> lpush items:comment:1001 '{"comment":"good product","date":1430295077289}'
> lpush items:comment:1001 '{"comment":"bad product","date":1430295078888}'
四、 Set類型,元素不重復,無序
添加
> sadd set1 a b c
刪除
> srem set1 b
獲取
> smembers set1
判斷元素是否存在,存在返回1,不存在返回0
> sismember set1 a
差集運算,屬于A但不屬于B的元素構成的集合,A-B
> sadd setA 1 2 3
> sadd setB 2 3 4
> sdiff setA setB
> sdiff setB setA
交集,A ∩ B
> sinter setA setB
并集,A ∪ B
> sunion setA setB
獲取元素的個數
> scard setA
隨機彈出一個元素
> spop setA
五、SortedSet類型,zset,有序
添加
> zadd english:scoreboard 80 zhangsan 70 lisi 90 wangwu
> zadd english:scoreboard 60 maliu
修改
> zadd english:scoreboard 85 zhangsan
獲取元素的分數
> zscore english:scoreboard maliu
刪除元素
> zrem english:scoreboard maliu
獲取排名在某個索引范圍的元素值列表
按照分數值從小到大排列
> zrange english:scoreboard 0 1
> zrange english:scoreboard 0 -1
> zrange english:scoreboard 0 -1 withscores
按照分數值從大到小排列
>zrevrange english:scoreboard 0 -1
>zrevrange english:scoreboard 0 -1 withscores
獲取指定分數范圍內的元素
> zrangebyscore english:scoreboard 80 90 withscores
> zrangebyscore english:scoreboard 80 90 withscores limit 1 2
增加某個元素的分數,返回更改后的分數
> zincrby english:scoreboard 5 wangwu
獲取集合中元素的數量
> zcard english:scoreboard
獲取指定分數內的元素個數
> zcount english:scoreboard 80 90
按照排名指定索引范圍刪除元素
> zremrangebyrank english:scoreboard 0 1
按照分數范圍刪除元素
> zremrangebyscore english:scoreboard 80 90
獲取元素的排名
從小到大
> zrank english:scoreboard lisi
從大到小
> zrevrank english:scoreboard lisi
應用場景,商品銷售排行榜
> zrank items:sellsort 9 1001 10 1002
> zincrby items:sellsort 1 1001
> zrevrange items:sellsort 0 9 withscores
設置key的生存時間
> set test hello
> expire test 5
> ttl test 【-1沒有設置存活時間,-2已刪除】
> get test
> persist test
匹配查詢key
> keys user*
數據庫中是否存在key
> exists user
刪除key
> del user
重命名key
> rename user userabc
返回數據類型
> type setA
到此,關于“Redis有哪些數據類型”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。