02redis五種數據類型

介紹

redis分爲五種基本數據類型:String、Hash、List、Set、ZSet

1.String類型

String類型是一種包含很多種類型的特殊類型,並且是二進制安全的。比如將序列化的對象進行存儲,比如一張圖片進行二進制存儲。比如一個簡單的字符串,數值等等。
方法使用:
1. 設置值:set 名稱 值(名稱隨便自己取,值就是想存入的內容,設置name多次會覆蓋)
2. 刪除值:del 名稱
這裏寫圖片描述
3. 使用 setnx (not exist)
name 如果不存在就進行設置,存在就不需要進行設置了,返回0
4. 使用 setex (expired)
設置數據的有效時間,以秒爲單位,失效後返回nil (nil代表爲空)
這裏寫圖片描述
5. 使用 setrange 替換字符串
setrange 名稱 第幾位開始 替換內容
這裏寫圖片描述
從第六位就是開始替換了,想替換的內容寫在最後
6. 一次設置多個和獲取多個值
mset 和 mget
這裏寫圖片描述
7. 一次性取值和設置新值得方法 getset
這裏寫圖片描述
8. 每次數值加減1 incr decr
這裏寫圖片描述
9. 指定大小的加減 incrby decrby
這裏寫圖片描述
10. 對字符串進行追加 append
這裏寫圖片描述
11. 獲取字符串長度 strlen
這裏寫圖片描述

2.Hash類型

Hash類型是String類型的field和value的映射表,或者說是一個String集合,它特別適合存儲對象,相比較而言,將一個對象類型存儲在Hash類型裏要比存儲在String類型裏佔用更少的空間,並方便存取整個對象。
1. 哈希存入 hset
hset 哈希名 field value
2. 哈希獲取 hget
hget 哈希名 field
這裏寫圖片描述
3. 一次性存入和獲取多個 hmset hmget
這裏寫圖片描述
4. 假如存入hash的field存在,返回0,不存在則存入
這裏寫圖片描述
5. 集合遞增和遞減 hincrby hdecrby
這裏寫圖片描述
6. 獲取一個hash裏全部的值
hgetall 哈希名
7. 判斷是否存在key,存在則返回1,不存在則返回0 hexists
這裏寫圖片描述
8. 返回一個hash的長度
hlen 哈希名
9. 刪除指定的 hash 的 field
這裏寫圖片描述
10. 返回一個hash裏所有的字段
hkeys 哈希名
11. 返回一個hash的所有value
hvals 哈希名
這裏寫圖片描述
注意: redis不適合做 關聯表等複雜表操作,可以在關係數據庫裏面弄好一個視圖,然後把視圖存入到redis裏面

3.List

List是一個鏈表結構的集合,其主要功能有push pop 獲取元素等等。更詳細的說,List類型是一個雙端鏈表的結構,我們可以通過相關操作進行集合的頭部或者尾部添加和刪除元素,List的設計非常簡單精巧,既可作爲棧,又可作爲隊列。
1. 添加元素和遍歷元素
lpush是從頭部加入元素(棧),先進後出、
rpush是從尾部加入元素(隊列)先進先出
lrange 表名 0 -1 (表示從0位置開始,一直到找不到,下標爲-1)
這裏寫圖片描述
2. linsert 插入元素
這裏寫圖片描述
3. lset 方法 指定下標的元素替換掉
這裏寫圖片描述
4. lrem 方法 刪除元素,返回刪除的個數
這裏寫圖片描述
5. rpoplpush 第一步從尾部刪除元素,第二部從頭部加入元素
rpoplpush 表名 內容
6. lindex 返回名稱爲key的list中 index位置的元素
這裏寫圖片描述
7. llen 返回元素的個數
這裏寫圖片描述

3.Set

Set集合是String類型的無序集合,set是通過hashtable實現的,對集合我們可以取交集,並集,差集。
1. sadd:向名稱爲key的set中添加元素。(set集合不允許重複元素,smembers查看集合中的元素)
2. srem:刪除set集合中的元素
3. spop:隨機返回刪除的key
這裏寫圖片描述
4. sdiff:返回兩個集合不同的元素(哪個集合在前就以哪個爲準)
這裏寫圖片描述
5. sdiffstore:將返回的不同元素存儲到另一個集合裏(把set1和set2的不同元素,以set1爲準,存儲到set3)
這裏寫圖片描述
6. sinter:返回集合的交集
7. sinterstore:返回集合的交集並存儲到另一個集合中
這裏寫圖片描述
8. sunion:取並集,並集的概念就是 set1裏面有a,b set2裏面有b,c set1和set2並集就是a,b,c
9. sunionstore:取並集,並存儲到另一個set中
這裏寫圖片描述
10. smove:從一個集合移動 到另一個集合
這裏寫圖片描述
11. scard:查看集合裏元素個數
12. sismember:判斷某元素是否是集合中的元素,存在爲1,不存在爲0
13. srandmember:隨機返回一個元素
這裏寫圖片描述

4.ZSet

ZSet是一個有序的集合,業務場景可以用於打分,從高到低進行排名等。
1. zadd:添加元素
2. zrem:刪除名稱爲key的zset中的元素member
3. zrem:遍歷,尾部可以加一個 withscores 表示顯示元素的序號
這裏寫圖片描述
4. zincrby:指定值去自動遞增或減少,和incrby類似
這裏寫圖片描述
5. zrangebyscore:找到指定區間範圍內的數據進行返回
6. zremrangebyscore:刪除指定序號(或者刪除序號n到m)
這裏寫圖片描述
7. zremrangebyrank:刪除指定索引
8. zrank:返回排序索引 從小到大排序(升序排序之後再找索引,看該數據前面還有幾個數據)
9. zrevrank:返回排序索引 從大到小排序(降序排序之後再找索引)
這裏寫圖片描述
10. zrangebyscore : 找到指定區間範圍內的數據進行返回
11. zcard:返回區間內所有元素的個數
12. zcount:返回集合中序號在給定區間中的數量
這裏寫圖片描述
13. zremrangebyrank:刪除指定索引的
14. zremrangebyscore:刪除指定序號的
這裏寫圖片描述

發佈了58 篇原創文章 · 獲贊 25 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章