redis的五種資料型別用法

2021-08-25 05:44:55 字數 3415 閱讀 2701

1. string型別

string為最簡單型別,乙個key對應乙個value

set mykey "wangzai"             ##設定key,第二次賦值會直接覆蓋之前的

setnx mykey "wangzai" ## 如果mykey存在,則不改變,如果不存在,則建立賦值

get mykey ##獲取key的值

setex key1 10 1 ##給key1設定過期時間為10s,值為1

mset key1 value1 key2 value2 ##設定多個key

mget key1 key2 ##獲取多個key的值

2. list型別list是乙個鍊錶結構,主要功能是push、pop以及獲取乙個範圍的所有值等。

使用list結構,可以輕鬆實現最新訊息排行,另乙個應用是訊息佇列,可以利用list的push操作,將任務存在list中,然後工作執行緒再用pop操作將任務取出進行執行。(先進後出)

lpush list1 "wangzai"                   ##在列表中加入乙個元素    

lrange list1 0 -1 ##檢視list1裡面的所有元素

lpop list1 ##取出list1最新的元素

linsert list1 before "wangzai" "doubi" ##在值為"wangzai"的前面插入乙個元素為"doubi"

lset list1 3 "hehe" ##把第五個元素修改為"hehe"

lindex list1 0 ##檢視第乙個元素

llen list1 ##檢視列表中有多少元素

3. set型別

set是集合,對集合操作有新增刪除元素,有對多個集合求交並差等操作。在微博應用中,可以將乙個使用者關注的所有人放在乙個集合裡,將所有粉絲放在乙個集合裡,因為redis為集合提供了求交集、並集、差集等操作,就可以方便的實現如共同關注、共同喜好等功能。

sadd set1 a b c d                      ## 建立集合set1並設定值

smembers set1 ## 檢視集合set1的值

srem set1 a b ## 刪除set1的值

spop set1 ## 隨機取出乙個元素並刪除

sinter set1 set2 ## 交集

sinterstore set1 set2 set3 ## 將交集儲存到set3

sunion set1 set2 ## 並集

sunionstore set1 set2 set3 ## 把並集儲存到set3

sdiff set1 set2 ## 差集

sdiffstore set1 set2 set3 ## 把差集儲存到set3

sismember set1 c ## 判斷乙個元素是否屬於乙個集合

srandmember set1 ## 隨機取出乙個元素,但不刪除

4. sorted set型別

sorted set是有序集合,比set多了乙個權重引數score,使得集合元素能夠按score進行有序排列。

例如儲存乙個班級同學的成績,其集合value可以是同學的學號,而score可以是其考試的得分,這樣在資料插入集合的時候就進行了排序。

zadd zset1 1 a                  ## 增加乙個集合zset1,score為1,member為a

zrange zset1 0 -1 ## 按score公升序輸出member

zrange zset1 0 -1 withscores ## 帶上分值

zrem zset1 a ## 刪除指定元素

zrank zset1 a ## 返回元素的索引值,索引從0開始

zrevrange zset1 0 -1 ## score降序輸出member

zcard zset1 ## 返回集合中所有元素的個數

zcount zset1 1 10 ## 返回分值範圍1-10的元素個數

zrangebyscore zset1 1 10 ## 返回分值範圍1-10的元素

zremrangebyscore zset1 1 10 ## 刪除分值範圍1-10的元素

5. hash型別

把一些結構化的資訊打包成hashmap,在客戶端序列化後儲存為乙個字串的值(一般為json格式),比如使用者姓名、年齡、性別等

hset hash1 name wangzai                  ## 建立hash (hset name key value)

hget hash1 name ## 獲取field值 hget name key

hgetall hash1 ## 獲取hash1中所有的key和value

hmset hash2 name wangzai age 26 job it ## 批量建立鍵值對

hmget hash2 name age job ## 批量獲取field值

hdel hash2 job ## 刪除指定field

hkeys hash2 ## 列印所有的key

hvals hash2 ## 列印所有的value

hlen hash2 ## 檢視hash2有幾個field

Redis 五種資料型別

一 前言 上篇部落格已經對redis的一些基本知識做了一些簡介,這篇部落格,將簡單介紹一些redis的五種資料型別。分別為string 字串 hash 雜湊 list 鍊錶 set 集合 zset 有序集合 對這些型別可以執行很多原子性的操作 比如向乙個string型別的value後面追加字串 向l...

Redis 五種資料型別

目錄 redis共有strings hashs lists sets sorted sets五種資料型別,可以說已經比較豐富了。下面只對這幾種資料型別的資料結構與用途做簡要介紹。至於每種資料型別的操作api,這裡只簡單一提,不再一一詳細介紹,有需要的使用者可以google即可。string是最簡單的...

Redis 五種資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 資料型別一 字串 0.1 6379 set name hubotao2 ok127.0 0.1 6379 get name hubotao2 資料型別二 hash...