Redis學習(二):五種數據結構及相關命令

更多命令請查看官方文檔。

String 字符串

  • 同編程語言中的字符串非常相似。
  • 字符串可以存儲三種類型值
    • 字節串(byte string)
    • 整數
    • 浮點數

相關命令

命令 行爲
get 獲取存儲在給定鍵中的值
set 設置存儲在給定鍵中的值
del 刪除存儲在給定鍵中的值
incr incr key-name 將鍵存儲的值加上1
decr *
incrby incrby key-name amout 將鍵存儲的值加上整數 amout
decrby *
incrbyfloat incrbyfloat key-name amout 將鍵存儲的值加上浮點數 amout
阿里雲:0>set hello word
"OK"
阿里雲:0>get hello
"word"
阿里雲:0>del hello
"1"
阿里雲:0>get hello
null

List 列表

  • 列表可以有序的存儲多個字符串。
  • 實際應用
    • 存儲任務信息
    • 最近遊覽過的文檔
    • 常用聯繫人信息
  • 可以阻塞式的彈出命令。timeout
    • 消息傳遞
    • 任務隊列

相關命令

命令 行爲
rpush 將給定值推入列表的右端
lrange 獲取列表在給定範圍所有的值
lindex 獲取列表在給定位置上的單個元素
lpop 返回從列表的左端彈出的第一個值(刪除)
阿里雲:0>rpush list-key item
"1"
阿里雲:0>rpush list-key item2
"2"
阿里雲:0>rpush list-key item
"3"
阿里雲:0>lrange list-key 0 -1 //索引從0開始,-1結束 等於所有的值
 1)  "item"
 2)  "item2"
 3)  "item"
阿里雲:0>lindex list-key 1
"item2"
阿里雲:0>lpop list-key
"item"
阿里雲:0>lrange list-key 0 -1
 1)  "item2"
 2)  "item"

Set 集合

  • 列表可以存儲多個相同的字符串,而集合則通過使用散列表來保證自己存儲的每個字符串都是各不相同的(這些散列表只有鍵,但沒有與鍵相關聯的值)
  • 集合使用無序的方式存儲,所以無法像集合那樣從某一端彈出元素。
  • 可以隨機的刪除,返回元素。
  • 可以對多個集合進行交集,並集,差集運算。

相關命令

命令 行爲
sadd 添加元素
smembers 返回集合包含的所有元素(慎用)
sismember 檢查給定元素是否包含在集合中
srem 如果給定元素在集合中,刪除。
阿里雲:0>sadd set-key item
"1"
阿里雲:0>sadd set-key item2
"1"
阿里雲:0>sadd set-key item3
"1"
阿里雲:0>smembers set-key
 1)  "item"
 2)  "item3"
 3)  "item2"
阿里雲:0>sadd set-key item
"0"
阿里雲:0>sismember set-key item4
"0"
阿里雲:0>sismember set-key item
"1"
阿里雲:0>srem set-key item2
"1"
阿里雲:0>srem set-key item2
"0"
阿里雲:0>smembers set-key
 1)  "item"
 2)  "item3"

Hash 散鍵值列

  • 可以存儲多個鍵值之間的映射
  • 使用於將一些相關的數據數據存儲在一起。

相關命令

命令 行爲
hset 關聯給定的鍵值對
hget 獲取指定散列鍵的值
hgetall 獲取散列包含所有的鍵值對
hdel 如果散列存儲該鍵,刪除對應的鍵
阿里雲:0>hset hash-key sub-key1 value1
"1"
阿里雲:0>hset hash-key sub-key2 value2
"1"
阿里雲:0>hset hash-key sub-key1 value1
"0"
阿里雲:0>hgetall hash-key
 1)  "sub-key1"
 2)  "value1"
 3)  "sub-key2"
 4)  "value2"
阿里雲:0>hdel hash-key sub-key1
"1"
阿里雲:0>hdel hash-key sub-key1
"0"
阿里雲:0>hgetall hash-key
 1)  "sub-key2"
 2)  "value2"
阿里雲:0>hget hash-key sub-key2
"value2"

Zset 有序集合

  • 有序集合和散列一樣都是用於存儲鍵值對。
  • 有序集合的鍵稱爲成員(member),每個成員各不相同。
  • 有序契合的值稱爲分值(score),分值必須爲浮點數。
  • 既可以根據成員訪問元素(同散列),又可以根據分值及分值的排列順序來訪問元素。

相關命令

命令 行爲
zadd 添加
zrange 根據元素所處位置,獲取集合中多個元素
zrangebyscore 獲取有序集合在給定範圍內的所有元素
zrem 如果集合存在該成員,移除。
阿里雲:0>zadd zset-key 728 number1
"1"
阿里雲:0>zadd zset-key 916 number2
"1"
阿里雲:0>zadd zset-key 916 number2
"0"
阿里雲:0>zadd zset-key 956 number2
"0"
阿里雲:0>zrange zset-key 0 -1 withscores
 1)  "number1"
 2)  "728"
 3)  "number2"
 4)  "956"
阿里雲:0>zrange zset-key 0 800 withscores
 1)  "number1"
 2)  "728"
 3)  "number2"
 4)  "956"
阿里雲:0>zrange zset-key 0 728 withscores //包含728的元素
 1)  "number1"
 2)  "728"
 3)  "number2"
 4)  "956"
阿里雲:0>zrem zset-key number1
"1"
阿里雲:0>zrem zset-key number1
"0"
阿里雲:0>zrange zset-key 0 -1 withscores
 1)  "number2"
 2)  "956"

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章