一、數(shù)據(jù)結(jié)構(gòu)
二、使用
2.1 String 的使用
Redis String
一個鍵對應(yīng)一個值,并且是二進(jìn)制安全的,值可以是圖片或者序列化后的對象。
一個鍵最大能存儲 512
MB。
2.1.1 set 命令的使用
- set key value
127.0.0.1:6379> set name yunhu OK 127.0.0.1:6379> get name "yunhu"
- 重復(fù)對同一個鍵設(shè)置值,導(dǎo)致覆蓋
15 已經(jīng)被覆蓋了。127.0.0.1:6379> set age 15 OK 127.0.0.1:6379> set age 20 OK 127.0.0.1:6379> get age "20"
- set key value nx
- 當(dāng) key 不存在時,返回 OK 表示設(shè)置成功
127.0.0.1:6379> get year (nil) 127.0.0.1:6379> set year 2020 nx OK 127.0.0.1:6379> get year "2020"
- 當(dāng) key 存在時,設(shè)置失敗返回 nil 值。
127.0.0.1:6379> get year "2020" 127.0.0.1:6379> set year 1978 nx (nil)
- 當(dāng) key 不存在時,返回 OK 表示設(shè)置成功
- set key value xx
- 當(dāng) key 不存在時,放棄設(shè)置,返回空值
127.0.0.1:6379> get age // age 這個鍵不存在 (nil) 127.0.0.1:6379> set age 18 xx (nil)
- 當(dāng) key 存在時,可以設(shè)置。
127.0.0.1:6379> set age 20 OK 127.0.0.1:6379> set age 18 xx OK 127.0.0.1:6379> get age "18"
- 當(dāng) key 不存在時,放棄設(shè)置,返回空值
2.1.2 GETSET 命令的使用
GETSET 獲取舊值并設(shè)置新值。
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> GETSET age 25 // 將 age 設(shè)為 25,并且返回舊的值 18
"18"
127.0.0.1:6379> get age // 獲取新的值
"25"
2.2 Hash 的使用
Redis Hash
是一個鍵值對集合,字符類型的 field
和 value
組成的。
Hash 適合用來存儲對象。
每個 Hash 可以存儲 2 32 ? 1 2^{32}-1 232?1個鍵值對。
127.0.0.1:6379> HMSET student id 1 name "yunhu"
OK
127.0.0.1:6379> HGET student id
"1"
127.0.0.1:6379> HGET student name
"yunhu"
設(shè)置 Hash 名是 student
,鍵為 id 的值是 1,鍵為 name 的值是 yunhu
。
然后去獲取對應(yīng)鍵的值。
2.3 List 的使用
Redis List
就是字符串列表。
127.0.0.1:6379> DEL student
(integer) 1
127.0.0.1:6379> lpush student "yunhu" // 將 yunhu 插入 student 列表頭部
(integer) 1
127.0.0.1:6379> lpush student alice
(integer) 2
127.0.0.1:6379> lpush student bob
(integer) 3
127.0.0.1:6379> lrange student 0 -1 // 遍歷 student 中的元素
1) "bob"
2) "alice"
3) "yunhu"
列表可以存儲 個元素。
2.4 set 的使用
Redis Set
是一個無序的集合,底層使用哈希表實現(xiàn),添加、刪除、搜索都為
O
(
1
)
O(1)
O(1)文章來源:http://www.zghlxwxcb.cn/news/detail-561978.html
127.0.0.1:6379> DEL student
(integer) 1
127.0.0.1:6379> sadd student alice
(integer) 1
127.0.0.1:6379> sadd student bob
(integer) 1
127.0.0.1:6379> sadd student xiaoming
(integer) 1
127.0.0.1:6379> sadd student bob // 添加兩次 bob,但實際上只有一個。
(integer) 0
127.0.0.1:6379> smembers student // 返回集合中的所有的成員
1) "xiaoming"
2) "bob"
3) "alice"
2.5 zset 的使用
zset 與 set 一樣都是集合,但是 zset 每個元素關(guān)聯(lián)一個 double 類型的分?jǐn)?shù),通過這個分?jǐn)?shù)對集合進(jìn)行從小到大排序。分?jǐn)?shù)可以重復(fù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-561978.html
127.0.0.1:6379> del student
(integer) 1
127.0.0.1:6379> zadd student 1 yunhu
(integer) 1
127.0.0.1:6379> zadd student 2 alice
(integer) 1
127.0.0.1:6379> zadd student 3 bob
(integer) 1
127.0.0.1:6379> zrangebyscore student 0 1000
1) "yunhu"
2) "alice"
3) "bob"
127.0.0.1:6379> zadd student 0 xiaoming
(integer) 1
127.0.0.1:6379> zrangebyscore student 0 1000
1) "xiaoming"
2) "yunhu"
3) "alice"
4) "bob"
到了這里,關(guān)于Redis 五種基本數(shù)據(jù)結(jié)構(gòu)及基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!