Redis 資料型別整理

2021-10-24 05:51:41 字數 2129 閱讀 9901

string

redis-list:列表 在首尾都可以新增資料

lpush/rpush/lrange ---- 從左/從右/獲取指定長度

lpush list01 1 2 3 4 5 倒序排列

rpush list02 1 2 3 4 5 正序排列

lrange list01 0 -1 獲取list01 中的所有值

0到-1 從第0個獲取到最後乙個

左邊推 右邊推 新增 棧 先進後出 堆 先進先出

按照索引下標獲取元素:

lrange list01 0 -1 獲取所有

lindex list01 1 獲取第二個

redis 中返回nil就是空值,沒有返回

負值也是可以的,就是倒著取

lrem 刪除 lrem l3 2 3 刪除l3中的2個3

一般不會報錯,除非語法就錯誤了

如果是lrem l3 -2 3 就是倒著刪

也可以移除所有與該值相等的,通過:lrem l3 0 5 刪除所有的5

0是最小的,但是可以表示無限大

擷取:ltrim

ltrim 擷取一段資料

通過xshell的方式可以在敲的指令後顯示提示內容

通過這些可以列出乙個使用者瀏覽記錄:

乙個列表 儲存了使用者瀏覽了**的某一些商品 使用者的瀏覽記錄可以儲存5條,如果多了的話,就把先進的彈出去 只保留最新的瀏覽記錄,

1.先判斷,是否有值,

2.推值

3.擷取

應用場景:

專案裡的應用場景

redis-hash

雜湊型別:

hset user id 1

hget user id

hmset:設定多個

hgetall 獲取所有hgetall user

del 可以刪除任何型別的資料

雜湊 鍵值對 一一對應的,

hexist key檢測某個值是不是存在

hincrby 不存在就建立且賦值 存在就自增

hincrby user gender 1:

自增之後是什麼樣子的啊?

顯示的內容有什麼意義?

hincrby user gender 100

返回的102是什麼意義

沒有就建立 有就自增,

可以用於買了什麼東西,買了多少個,沒有就建立,有買過就在原基礎上自增

雜湊可以用於儲存**中的購物車

購物車我就理解了,沒有新增就新增,如果新增過就在原基礎上在新增若干個

集合 不重複的集合:

set:

重複了呢?自動去重

sadd:新增

sadd s1 1 2 4 4 5 6

敲回車會返回5個,因為重複的不作數

smembers: s1 可以顯示

可以自動排序:數字可以排序,其他不會

雜湊 的鍵是唯一的嗎?唯一的啊!

但是不可能是有序的

sismember s1 4 判斷某乙個數是不是在,在就是1 不在是0

scard s1:判斷集合元素個數

srem key value:

srem 刪除某些元素

srem s1: 1 2

srandmember s2 3

隨機去3個值 預設是1

並未修改原來的值 只是隨機的顯示幾個值

spop s2 3

可以隨機出棧3個值, 但是這個出去就沒了,原來的值裡面沒有出的這幾個了

smove:將memer元素從源中移動到目標中

從乙個集合移動到另乙個集合之中

其他操作:差並補

sinter :

去重 不會重複 比如關注 歐冠抽籤

redis-zset

有序集合:

也是鍵值對 但是不能重複 有序集合和集合一樣 是不能重複的

定義時無法定義

定義時 zadd

檢視 zrange

用途可以用於儲存有序且唯一的,zadd z1 1 lcy 2 lcy1 3 lcy2

這樣會根據前面的1 2 3排序

可以看做是id

zrange z3

zrange byscore z3 10 30 返回id為10-30的內容

此時列出的是id和內容

zcard 看總的條數

Redis整理(5)之資料型別list

雙向鍊錶 應用場景 在成千萬條資料如果只是想取得頭尾的值,那麼可以使用list,複雜度是根據取得值得深度,越靠近兩端速度越快 例如,獲取最新的插入資料,即最新新聞。另外拓展 可以作為資料結構棧和佇列使用 lpush key value value.向list左邊插入乙個值 rpush key val...

資料型別整理

1 單精度 型別說明符為float,該實型資料在記憶體中佔4個位元組,表示的數值範圍是 3.4e38 3.4e38。例如 float a 2 雙精度 型別說明符為double,該實型資料在記憶體中佔8個位元組,表示的數值範圍是 1.7e08 1.7e308。例如 double b 3 長雙精度 型別...

資料型別整理

整理 數字int 字串replace find join strip startswith split upper lower format tempalete i am age v tempalets.pormat name alex age 19 v tempalete.format print...