首頁 >資料庫 >Redis >redis一般緩存哪些數據

redis一般緩存哪些數據

anonymity
anonymity原創
2019-06-05 16:27:036936瀏覽

redis 主要有以下幾個資料型別:

string

hash

redis一般緩存哪些數據

## list

set

sorted set

##string

這是最簡單的類型,就是普通的set 和get,做簡單的KV 快取。

set college szu

hash

這個是類似map 的一種結構,這個一般就是可以將結構化的數據,例如一個物件(前提是這個物件沒嵌套其他的物件)給快取在redis 裡,然後每次讀寫快取的時候,可以就操作hash 裡的某個欄位。

hset person name bingo
hset person age 20
hset person id 1
hget person name
person = {
    "name": "bingo",
    "age": 20,
    "id": 1
}

list

list 是有序列表,這個可以玩兒出很多花樣。 例如可以透過 list 儲存一些清單型的資料結構,類似粉絲清單、文章的評論清單之類的東西。

例如可以透過lrange 指令,讀取某個閉區間內的元素,可以基於list 實作分頁查詢,這個是很棒的一個功能,基於redis 實作簡單的高效能分頁,可以做類似微博那種下拉不斷分頁的東西,效能高,就一頁一頁走。

# 0開始位置,-1結束位置,結束位置為-1時,表示清單的最後一個位置,即查看所有。

lrange mylist 0 -1

例如可以搞個簡單的訊息佇列,從 list 頭懟進去,從 list 尾巴那裡弄出來。

lpush mylist 1
lpush mylist 2
lpush mylist 3 4 5
# 1
rpop mylist

set

set 是無序集合,自動去重。

###直接基於set 將系統裡需要去重的資料丟進去,自動就給去重了,如果你需要對一些資料進行快速的全域去重,你當然也可以基於jvm 記憶體裡的HashSet進行去重,但是如果你的某個系統部署在多台機器上呢?得基於 redis 進行全域的 set 去重。 ######可以基於 set 玩兒交集、並集、差集的操作,比如交集吧,可以把兩個人的粉絲列表整一個交集,看看倆的共同好友是誰?對吧。 ######把兩個大 V 的粉絲都放在兩個 set 中,對兩個 set 做交集。 ###
#-------操作一个set-------
# 添加元素
sadd mySet 1
# 查看全部元素
smembers mySet
# 判断是否包含某个值
sismember mySet 3
# 删除某个/些元素
srem mySet 1
srem mySet 2 4
# 查看元素个数
scard mySet
# 随机删除一个元素
spop mySet
#-------操作多个set-------
# 将一个set的元素移动到另外一个set
smove yourSet mySet 2
# 求两set的交集
sinter yourSet mySet
# 求两set的并集
sunion yourSet mySet
# 求在yourSet中而不在mySet中的元素
sdiff yourSet mySet
######sorted set#########sorted set 是排序的 set,去重但可以排序,寫進去的時候給一個分數,自動根據分數排序。 ###
zadd board 85 zhangsan
zadd board 72 lisi
zadd board 96 wangwu
zadd board 63 zhaoliu
# 获取排名前三的用户(默认是升序,所以需要 rev 改为降序)
zrevrange board 0 3
# 获取某用户的排名
zrank board zhaoliu

以上是redis一般緩存哪些數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn