Redis 數據類型之string/list/hash

Redis中的鍵

Redis是鍵值型數據庫,Redis中的鍵只有一個類型,就是字符串。

Redis中的值

Redis值支持的類型有以下幾種:

  • 字符串類型 string
  • 列表類型 list
  • 集合類型 set
  • 有序集合類型 sorted set
  • 哈希類型 hash
  • HyperLogLog類型
  • Geo類型

字符串類型string

1、字符串類型的存取操作,注意set執行成功會返回OK。

127.0.0.1:6379> set name "maoge"
OK
127.0.0.1:6379> get name
"maoge"

2、如果鍵不存在,則返回nil。

127.0.0.1:6379> get test
(nil)

3、使用strlen可以獲取字符串長度,當鍵不存在時返回0。

127.0.0.1:6379> strlen name
(integer) 5
127.0.0.1:6379> strlen test
(integer) 0

4、如果鍵已存在,再次執行set,則覆蓋鍵對應的值。

127.0.0.1:6379> set name "maoge"
OK
127.0.0.1:6379> set name "halo"
OK
127.0.0.1:6379> get name
"halo"

5、使用setnx,當鍵不存在時爲其設值,此時返回1;當鍵已存在則不改變鍵對應的值,返回0。

127.0.0.1:6379> setnx country "china"
(integer) 1
127.0.0.1:6379> get country
"china"
127.0.0.1:6379> setnx country "usa"
(integer) 0
127.0.0.1:6379> get country
"china"

6、使用mset/mget可以進行批量操作,這樣可以節省客戶端和服務器之間的通信開銷。

127.0.0.1:6379> mset age "12" sex "man"
OK
127.0.0.1:6379> mget age sex
1) "12"
2) "man"

列表類型list

常用操作如下:

  • lrange 顯示指定索引範圍的元素(從0開始算)
  • lpush 左側插入元素,返回插入後列表長度
  • rpush 右側插入元素,返回插入後列表長度
  • lpop 左側彈出元素
  • rpop 右側彈出元素

注意,向不存在的鍵插入元素,Redis會自動創建list;如果列表爲空,Redis會自動回收該鍵。實例如下:

127.0.0.1:6379> lrange studetns 0 1
(empty list or set)
127.0.0.1:6379> lpush students "zhangsan"
(integer) 1
127.0.0.1:6379> rpush students "lisi"
(integer) 2
127.0.0.1:6379> lrange students 0 1
1) "zhangsan"
2) "lisi"
127.0.0.1:6379> lpop students
"zhangsan"
127.0.0.1:6379> rpop students
"lisi"
127.0.0.1:6379> lrange students 0 1
(empty list or set)

哈希類型hash

注意Redis數據集本身即是一個hash結構,類似於java中的map。

此處的哈希類型,指的是,Redis鍵對應的值的部分,依然是一個哈希類型。

1、hset設置單個哈希字段的值

127.0.0.1:6379> hset city beijing "001"
(integer) 1
127.0.0.1:6379> hset city shanghai "002"
(integer) 1

2、hget獲取單個哈希字段對應的值

127.0.0.1:6379> hget city beijing
"001"

3、hexists測試哈希字段是否存在

127.0.0.1:6379> hexists city beijing
(integer) 1
127.0.0.1:6379> hexists city tianjin
(integer) 0

4、hgetall獲取哈希所有字段值

127.0.0.1:6379> hgetall city
1) "beijing"
2) "001"
3) "shanghai"
4) "002"

5、刪除哈希字段

127.0.0.1:6379> hdel city beijing
(integer) 1
127.0.0.1:6379> hget city beijing
(nil)

6、批量設置、獲取哈希字段

127.0.0.1:6379> hmset city nanjing "003" shenzhen "004"
OK
127.0.0.1:6379> hmget city nanjing shenzhen
1) "003"
2) "004"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章