介紹
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:刪除指定序號的