溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis有哪些數據類型

發布時間:2021-06-26 14:10:10 來源:億速云 閱讀:118 作者:chen 欄目:大數據

這篇文章主要介紹“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有哪些數據類型”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女