redis的存儲的5種數據類型

1.redis受限於基於內存存儲,有時會難以響應到全部的請求,但redis提供了故障轉移(failover)的功能,redis實現了主從複製的特性。執行復制的從服務器連上主服務器後,主服務器會發給鏈接上的從服務器一個原始數據庫(copy),以後主服務器的全部寫操做都會發送給從服務器,從服務器會隨着主服務器的更新進行更新,因此執行讀操做的客戶端能夠連到任意一個從服務器上查詢,以減緩主服務器的壓力,避免集中式的訪問。redis

2.redis和其餘數據庫的比較數據庫

3. 5種鍵值數據(String,list,set,hash.zset)服務器

3.1字符串(string)code

操做的命令爲:get :獲取某一鍵的值內存

set:設置某一鍵的值rem

del:刪除某一鍵(適用於全部的數據類型)字符串

3.2 list列表(值可重複) 有序get

 

操做的命令爲: rpush 從列表右端存入值string

lpush 從列表左端存入值hash

lrange 獲取給定範圍的全部值 0爲開始,-1爲結束

lindex 獲取給定位置的值

rpop 從列表右端刪除值

lpop 從列表左端刪除值

127.0.0.1:6379> rpush list-key 11

(integer) 1

127.0.0.1:6379> lpush list-key 22

(integer) 2

127.0.0.1:6379> lrange list-key

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lpush list-key 33

(integer) 3

127.0.0.1:6379> lrange list-key 0,-1

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lrange list-key 0 -1

1) "33"

2) "22"

3) "11"

127.0.0.1:6379> lrange list-key 0

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lrange list-key 0 1

1) "33"

2) "22"

127.0.0.1:6379> lindex list-key 1

"22"

127.0.0.1:6379> lindex list-key 0

"33"

127.0.0.1:6379> rpop list-key

"11"

127.0.0.1:6379> lrange list-key 0 -1

1) "33"

2) "22"

127.0.0.1:6379> lpop list-key

"33"

127.0.0.1:6379> lrange list-key 0 -1

1) "22"

127.0.0.1:6379>


3.3 集合Set(不予許存重複值),集合經過散列表保證存儲的每一個值都是不一樣的,無序

操做命令爲: sadd :向集合中插入值

smembers :獲取集合中的值

sismember :檢查集合中是否有某個值

srem:刪除集合中的某個值

127.0.0.1:6379> sadd set-key 11

(integer) 1

127.0.0.1:6379> sadd set-key 22

(integer) 1

127.0.0.1:6379> sadd set-key 44

(integer) 1

127.0.0.1:6379> smembers set-key

1) "11"

2) "22"

3) "44"

127.0.0.1:6379> sismember set-key 22

(integer) 1

127.0.0.1:6379> sismember set-key 33

(integer) 0

127.0.0.1:6379> srem set-key 22

(integer) 1

127.0.0.1:6379> sismember set-key 22

(integer) 0

127.0.0.1:6379> smembers set-key

1) "11"

2) "44"

127.0.0.1:6379>

 

3.4 散列

操做命令: hset 向散列key中存入鍵值對

hgetall 獲取散列key中的鍵值對

hdel 刪除散列key中的鍵值對的某一鍵值對

127.0.0.1:6379> hset hash-key sub-key1 value1

(integer) 1

127.0.0.1:6379> hset hash-key sub-key2 value2

(integer) 1

127.0.0.1:6379> hset hash-key sub-key3 value3

(integer) 1

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value3"

127.0.0.1:6379> hset hash-key sub-key3 value3

(integer) 0

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value3"

127.0.0.1:6379> hset hash-key sub-key3 value4

(integer) 0

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key2"

4) "value2"

5) "sub-key3"

6) "value4"

127.0.0.1:6379> hdel hash-key sub-key2

(integer) 1

127.0.0.1:6379> hgetall hash-key

1) "sub-key1"

2) "value1"

3) "sub-key3"

4) "value4"

127.0.0.1:6379>

3.5 有序集合

和散列同樣存儲的是鍵值對,有序集合的鍵成爲成員(member),值爲分數(score)

既能夠根據成員訪問分值,又能夠根據分值以及分值的順序獲取成員

 

操做命令 : zadd :將一個給定分值的成員添加到有序集合裏面

zrange : 根據元素在集合中所處的位置,獲取多個元素

zrem :刪除集合中的元素

zrangebuscores: 根據分值獲取集合中符合範圍的元素


 

127.0.0.1:6379> zadd zset-key 728 member1

(integer) 1

127.0.0.1:6379> zadd zset-key 982 member0

(integer) 1

127.0.0.1:6379> zadd zset-key 982 member0

(integer) 0

127.0.0.1:6379> zrange zset-key 0 -1 withscores

1) "member1"

2) "728"

3) "member0"

4) "982"

127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores

1) "member1"

2) "728"

127.0.0.1:6379> zrem zset-key member1

(integer) 1

127.0.0.1:6379> zrem zset-key member1

(integer) 0

127.0.0.1:6379> zrange zset-key 0 -1 withscores

1) "member0"

2) "982"

127.0.0.1:6379>
相關文章
相關標籤/搜索