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...