配置redis主從複製


1 案例1:配置redis主從複製

1.1 問題

  • 具體要求以下:
  • 將主機192.168.4.51做爲主庫
  • 將主機192.168.4.52做爲從庫
  • 測試配置

1.2 步驟

實現此案例須要按照以下步驟進行。node

步驟一:配置redis主從複製redis

1) 配置主從,4.51爲主,4.52爲從數據庫

若主機作過redis集羣,須要在配置文件裏面把開啓集羣,存儲集羣信息的配置文件都關閉,新主機則不用,這裏用以前的redis集羣作主從,須要還原redis服務器,4.51和4.52都須要還原(以4.51爲例)vim

  1. [root@redisA ~]# redis-cli -c -h 192.168.4.51 -p 6351 shutdown    
  2. //先關閉redis集羣
  3. [root@redisA ~]# vim /etc/redis/6379.conf
  4. bind 192.168.4.51
  5. port 6379
  6. # cluster-enabled yes
  7. # cluster-config-file nodes-6351.conf
  8. [root@redisA ~]# /etc/init.d/redis_6379 start
  9. Starting Redis server...
  10. [root@redisA ~]# ss -antlp | grep 6379
  11. LISTEN 0 511 192.168.4.51:6379 *:* users:(("redis-server",pid=22274,fd=6))
  12. [root@redisA ~]# redis-cli -h 192.168.4.51
  13. 192.168.4.51:6379> info replication        //查看主從配置信息
  14. # Replication
  15. role:master            //默認是master 服務器
  16. connected_slaves:0
  17. master_replid:eaa14478158a71c41f947eaea036658c2087e8f2
  18. master_replid2:0000000000000000000000000000000000000000
  19. master_repl_offset:0
  20. second_repl_offset:-1
  21. repl_backlog_active:0
  22. repl_backlog_size:1048576
  23. repl_backlog_first_byte_offset:0
  24. repl_backlog_histlen:0
  25. 192.168.4.51:6379>

2)配置從庫192.168.4.52/24緩存

  1. 192.168.4.52:6379> SLAVEOF 192.168.4.51 6379            //把52配置爲51的從庫
  2. OK

從庫查看服務器

  1. 192.168.4.52:6379> INFO replication
  2. # Replication
  3. role:slave
  4. master_host:192.168.4.51        //主庫爲4.51
  5. master_port:6379
  6. master_link_status:up
  7. master_last_io_seconds_ago:3
  8. master_sync_in_progress:0

3)主庫查看app

  1. [root@redisA ~]# redis-cli -h 192.168.4.51
  2. 192.168.4.51:6379> info replication
  3. # Replication
  4. role:master
  5. connected_slaves:1
  6. slave0:ip=192.168.4.52,port=6379,state=online,offset=14,lag=1    //從庫爲4.52
  7. master_replid:db7932eb0ea4302bddbebd395efa174fb079319f
  8. master_replid2:0000000000000000000000000000000000000000
  9. master_repl_offset:14
  10. second_repl_offset:-1
  11. repl_backlog_active:1
  12. repl_backlog_size:1048576
  13. repl_backlog_first_byte_offset:1
  14. repl_backlog_histlen:14
  15. 192.168.4.51:6379>

4)反客爲主,主庫宕機後,手動將從庫設置爲主庫異步

  1. [root@redisA ~]# redis-cli -h 192.168.4.51 shutdown            //關閉主庫
  2. 192.168.4.52:6379> SLAVEOF no one     //手動設爲主庫
  3. OK
  4. 192.168.4.52:6379> INFO replication
  5. # Replication
  6. role:master
  7. connected_slaves:0
  8. master_replid:00e35c62d2b673ec48d3c8c7d9c7ea3366eac33a
  9. master_replid2:db7932eb0ea4302bddbebd395efa174fb079319f
  10. master_repl_offset:420
  11. second_repl_offset:421
  12. repl_backlog_active:1
  13. repl_backlog_size:1048576
  14. repl_backlog_first_byte_offset:1
  15. repl_backlog_histlen:420
  16. 192.168.4.52:6379>

5)哨兵模式性能

主庫宕機後,從庫自動升級爲主庫測試

在slave主機編輯sentinel.conf文件

在slave主機運行哨兵程序

  1. [root@redisB ~]# redis-cli -h 192.168.4.52
  2. 192.168.4.52:6379> SLAVEOF 192.168.4.51 6379
  3. OK
  4. 192.168.4.52:6379> INFO replication
  5. # Replication
  6. role:slave
  7. master_host:192.168.4.51
  8. master_port:6379
  9. ...
  10. [root@redisA ~]# /etc/init.d/redis_6379 start
  11. Starting Redis server...
  12. [root@redisA ~]# redis-cli -h 192.168.4.51
  13. 192.168.4.51:6379> info replication
  14. # Replication
  15. role:master
  16. connected_slaves:1
  17. slave0:ip=192.168.4.52,port=6379,state=online,offset=451,lag=1
  18. master_replid:4dfa0877c740507ac7844f8dd996445d368d6d0f
  19. master_replid2:0000000000000000000000000000000000000000
  20. ...
  21. [root@redisB ~]# vim /etc/sentinel.conf
  22. sentinel monitor redisA 192.168.4.51 6379 1
  23. 關鍵字 關鍵字 主機名自定義 ip      端口 票數
  24. sentinel auth-pass redis51 密碼 //鏈接主庫密碼,若主庫有密碼加上這一行
  25. [root@redisB ~]# redis-sentinel /etc/sentinel.conf    //執行,以後把主庫宕機
  26. ...
  27. 25371:X 28 Sep 11:16:54.993 # +sdown master redis51 192.168.4.51 6379
  28. 25371:X 28 Sep 11:16:54.993 # +odown master redis51 192.168.4.51 6379 #quorum 1/1
  29. 25371:X 28 Sep 11:16:54.993 # +new-epoch 3
  30. 25371:X 28 Sep 11:16:54.993 # +try-failover master redis51 192.168.4.51 6379
  31. 25371:X 28 Sep 11:16:54.994 # +vote-for-leader be035801d4d48eb63d8420a72796f52fc5cec047 3
  32. ...
  33. 25371:X 28 Sep 11:16:55.287 * +slave slave 192.168.4.51:6379 192.168.4.51 6379 @ redis51 192.168.4.52 6379
  34. 25371:X 28 Sep 11:17:25.316 # +sdown slave 192.168.4.51:6379 192.168.4.51 6379 @ redis51 192.168.4.52 6379

6)配置帶驗證的主從複製

關閉4.51和4.52,啓動以後用info replication查看,各自爲主

主庫設置密碼,在51上面操做

  1. [root@redisA ~]# redis-cli -h 192.168.4.51 shutdown
  2. [root@redisA ~]# vim /etc/redis/6379.conf
  3. requirepass 123456
  4. [root@redisA ~]# /etc/init.d/redis_6379 start
  5. Starting Redis server...
  6. [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456
  7. 192.168.4.51:6379> ping
  8. PONG
  9. 192.168.4.51:6379>

7)配置從庫主機

  1. [root@redisB ~]# redis-cli -h 192.168.4.52 shutdown
  2. [root@redisB ~]# vim /etc/redis/6352.conf
  3. slaveof 192.168.4.51 6379
  4. masterauth 123456
  5. [root@redisB ~]# /etc/init.d/redis_6352 start
  6. Starting Redis server...

52上面查看 52從主庫變爲從庫

  1. [root@redisB ~]# redis-cli -h 192.168.4.52 -a 123456
  2. 192.168.4.52:6379> info replication
  3. # Replication
  4. role:slave
  5. master_host:192.168.4.51
  6. master_port:6379
  7. master_link_status:up

51上面查看 51的從庫爲52

  1. [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456
  2. 192.168.4.51:6379> info replication
  3. # Replication
  4. role:master
  5. connected_slaves:1
  6. slave0:ip=192.168.4.52,port=6379,state=online,offset=98,lag=0

2 案例2 :使用RDB文件恢復數據

2.1 問題

  • 要求以下:
  • 啓用RDB
  • 設置存盤間隔爲120秒 10個key改變存盤
  • 備份RDB文件
  • 刪除數據
  • 使用RDB文件恢復數據

2.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:使用RDB文件恢復數據

RDB介紹:

Redis數據庫文件,全稱Reids DataBase

數據持久化方式之一

在指定時間間隔內,將內存中的數據集快照寫入硬盤

術語叫Snapshot快照

恢復時,將快照文件直接讀到內存裏

相關配置參數

文件名

dbfilename 「dump.rdb」 文件名

save 「」 禁用RDB

數據從內存保存到硬盤的頻率

save 900 1 900秒內且有1次修改

save 300 10 300秒內且有10次修改

save 60 10000 60秒內且有10000修改

  1. [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456 shutdown
  2. [root@redisA ~]# vim /etc/redis/6379.conf
  3. dbfilename dump.rdb
  4. # save ""        //啓用RDB,去掉#號爲禁用RDB
  5. save 120 10        //120秒內且有1次修改(知足三個條件中的任意一個都會保存)
  6. save 300 10
  7. save 60 10000
  8. [root@redisA ~]# /etc/init.d/redis_6379 start
  9. Starting Redis server...
  10. [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456
  11. 192.168.4.51:6379>
  12. [root@redisA ~]# redis-cli -h 192.168.4.51 -a 123456
  13. 192.168.4.51:6379>
  14. 192.168.4.51:6379> set v1 k1
  15. OK
  16. 192.168.4.51:6379> set v2 k1
  17. OK
  18. 192.168.4.51:6379> set v3 k1
  19. OK
  20. 192.168.4.51:6379> set v4 k1
  21. OK
  22. 192.168.4.51:6379> set v45 k1
  23. OK
  24. 192.168.4.51:6379> set v46 k1
  25. OK
  26. 192.168.4.51:6379> set v7 k1
  27. OK
  28. 192.168.4.51:6379> set v8 k1
  29. OK
  30. 192.168.4.51:6379> set v9 k1
  31. OK
  32. 192.168.4.51:6379> set v10 k1
  33. OK
  34. 192.168.4.51:6379> keys *
  35. 1) "v2"
  36. 2) "v9"
  37. 3) "v10"
  38. 4) "v45"
  39. 5) "v4"
  40. 6) "v1"
  41. 7) "v46"
  42. 8) "v8"
  43. 9) "v7"
  44. 10) "v3"
  45. 192.168.4.51:6379>exit

備份數據

  1. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown        //中止服務
  2. [root@redisA ~]# cd /var/lib/redis/6379/
  3. [root@redisA 6379]# ls
  4. dump.rdb nodes-6351.conf
  5. [root@redisA 6379]# cp dump.rdb dump.rdb.bak    //備份dump.rdb,以後刪除

刪除數據

  1. [root@redisA 6379]# rm -rf dump.rdb
  2. [root@redisA 6379]# /etc/init.d/redis_6379 start
  3. Starting Redis server...
  4. [root@redisA 6379]# ls
  5. dump.rdb dump.rdb.bak nodes-6351.conf
  6. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  7. 192.168.4.51:6379> keys *        //已經沒有數據
  8. (empty list or set)
  9. 192.168.4.51:6379>

恢復數據

  1. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
  2. [root@redisA 6379]# mv dump.rdb.bak dump.rdb
  3. mv: overwrite ‘dump.rdb’? y
  4. [root@redisA 6379]# /etc/init.d/redis_6379 start
  5. Starting Redis server...
  6. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  7. 192.168.4.51:6379> keys *
  8. 1) "v7"
  9. 2) "v46"
  10. 3) "v45"
  11. 4) "v8"
  12. 5) "v4"
  13. 6) "v2"
  14. 7) "v1"
  15. 8) "v3"
  16. 9) "v9"
  17. 10) "v10"
  18. 192.168.4.51:6379>

RDB優勢:

高性能的持久化實現:建立一個子進程來執行持久化,先將數據寫入臨時文件,持久化過程結束後,再用這個臨時文件替換上次持久化好的文件;過程當中主進程不作任何IO操做

比較適合大規模數據恢復,且對數據完整性要求不是很是高的場合

RDB的缺點:

意外宕機時,最後一次持久化的數據會丟失

3 案例3 :使用AOF文件恢復數據

3.1 問題

  • 要求以下:
  • 啓用AOF
  • 備份AOF文件
  • 刪除數據
  • 使用AOF文件恢復數據

3.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:使用AOF文件恢復數據

1)AOF介紹

只作追加操做的文件,Append Only File

記錄redis服務全部寫操做

不斷的將新的寫操做,追加到文件的末尾

使用cat命令能夠查看文件內容

2)參數配置

文件名

appendfilename "appendonly.aof" 指定文件名

appendonly yes 啓用aof ,默認no

AOF文件記錄寫操做的方式

appendfsync always 有新寫操做當即記錄

appendfsync everysec 每秒記錄一次

appendfsync no 從不記錄

  1. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
  2. [root@redisA 6379]# rm -rf dump.rdb
  3. [root@redisA 6379]# vim /etc/redis/6379.conf
  4. appendonly yes            //啓用aof,默認no
  5. appendfilename "appendonly.aof"    //文件名
  6. appendfsync everysec            //每秒記錄一次
  7. [root@redisA 6379]# vim /etc/redis/6379.conf
  8. [root@redisA 6379]# /etc/init.d/redis_6379 start
  9. Starting Redis server...
  10. [root@redisA 6379]# ls            //會出現appendonly.aof文件
  11. appendonly.aof dump.rdb nodes-6351.conf
  12. [root@redisA 6379]# cat appendonly.aof        //無內容
  13. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  14. 192.168.4.51:6379> set v1 a1
  15. OK
  16. 192.168.4.51:6379> set v2 a2
  17. OK
  18. 192.168.4.51:6379> set v3 a3
  19. OK
  20. 192.168.4.51:6379> set v4 a4
  21. OK
  22. 192.168.4.51:6379> set v5 a5
  23. OK
  24. 192.168.4.51:6379> set v6 a6
  25. OK
  26. 192.168.4.51:6379> set v7 a7
  27. OK
  28. 192.168.4.51:6379> set v8 a7
  29. OK
  30. 192.168.4.51:6379> set v9 a9
  31. OK
  32. 192.168.4.51:6379> set v10 a10
  33. OK
  34. 192.168.4.51:6379> keys *
  35. 1) "v2"
  36. 2) "v5"
  37. 3) "v10"
  38. 4) "v9"
  39. 5) "v6"
  40. 6) "v8"
  41. 7) "v3"
  42. 8) "v7"
  43. 9) "v1"
  44. 10) "v4"
  45. 192.168.4.51:6379> exit
  46. [root@redisA 6379]# cat appendonly.aof            //有數據

3)使用AOF恢復數據

備份數據

  1. [root@redisA 6379]# cp appendonly.aof appendonly.aof.bak
  2. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown

刪除數據

  1. [root@redisA 6379]# rm -rf appendonly.aof
  2. [root@redisA 6379]# /etc/init.d/redis_6379 start
  3. Starting Redis server...
  4. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  5. 192.168.4.51:6379> keys *
  6. (empty list or set)
  7. 192.168.4.51:6379> exit

恢復數據

  1. [root@redisA 6379]# mv appendonly.aof.bak appendonly.aof
  2. mv: overwrite ‘appendonly.aof’? y
  3. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456 shutdown
  4. [root@redisA 6379]# /etc/init.d/redis_6379 start
  5. Starting Redis server...
  6. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  7. 192.168.4.51:6379> keys *
  8. 1) "v9"
  9. 2) "v5"
  10. 3) "v8"
  11. 4) "v2"
  12. 5) "v1"
  13. 6) "v4"
  14. 7) "v10"
  15. 8) "v6"
  16. 9) "v7"
  17. 10) "v3"
  18. 192.168.4.51:6379>

修復AOF文件,把文件恢復到最後一次的正確操做

  1. [root@redisA 6379]# vim appendonly.aof
  2. *2        //能夠把這一行刪除
  3. $6
  4. SELECT
  5. $1
  6. 0
  7. *3
  8. $3
  9. set
  10. $2
  11. v1
  12. $2
  13. a1
  14. *3
  15. $3
  16. ...
  17. [root@redisA 6379]# redis-check-aof --fix appendonly.aof        //恢復文件
  18. 0x 0: Expected prefix '*', got: '$'
  19. AOF analyzed: size=311, ok_up_to=0, diff=311
  20. This will shrink the AOF from 311 bytes, with 311 bytes, to 0 bytes
  21. Continue? [y/N]: y
  22. Successfully truncated AOF

RDB優勢:

能夠靈活的設置同步持久化appendfsync always或異步持久化appendfsync verysec

宕機時,僅可能丟失1秒的數據

RDB的缺點:

AOF文件的體積一般會大於RDB文件的體積

執行fsync策略時的速度可能會比RDB慢

4 案例4:Redis數據庫經常使用操做

4.1 問題

  • 對Redis數據庫各數據類型進行增刪改查操做
  • 數據類型分別爲strings、hash表、list列表
  • 設置數據緩存時間
  • 清空全部數據
  • 對數據庫操做

4.2 步驟

實現此案例須要按照以下步驟進行。

步驟一:redis數據類型

1)String字符串

set key value [ex seconds] [px milliseconds] [nx|xx]

設置key及值,過時時間可使用秒或毫秒爲單位

setrange key offset value

從偏移量開始複寫key的特定位的值

  1. [root@redisA 6379]# redis-cli -h 192.168.4.51 -a 123456
  2. 192.168.4.51:6379> set first "hello world"
  3. OK
  4. 192.168.4.51:6379> setrange first 6 "Redis"     //改寫爲hello Redis
  5. (integer) 11
  6. 192.168.4.51:6379> get first
  7. "hello Redis"

strlen key,統計字串長度

  1. 192.168.4.51:6379> strlen first
  2. (integer) 11

append key value 存在則追加,不存在則建立key及value,返回key長度

  1. 192.168.4.51:6379> append myname jacob
  2. (integer) 5

setbit key offset value 對key所存儲字串,設置或清除特定偏移量上的位(bit),value值能夠爲1或0,offset爲0~2^32之間,key不存在,則建立新key

  1. 192.168.4.51:6379> setbit bit 0 1         //設置bit第0位爲1
  2. (integer) 0
  3. 192.168.4.51:6379> setbit bit 1 0         //設置bit第1位爲0
  4. (integer) 0

bitcount key 統計字串中被設置爲1的比特位數量

  1. 192.168.4.51:6379> setbit bits 0 1        //0001
  2. (integer) 0
  3. 192.168.4.51:6379> setbit bits 3 1        //1001
  4. (integer) 0
  5. 192.168.4.51:6379> bitcount bits            //結果爲2
  6. (integer) 2

記錄網站用戶上線頻率,如用戶A上線了多少天等相似的數據,如用戶在某天上線,則使用setbit,以用戶名爲key,將網站上線日爲offset,並在該offset上設置1,最後計算用戶總上線次數時,使用bitcount用戶名便可,這樣即便網站運行10年,每一個用戶僅佔用10*365比特位即456字節

  1. 192.168.4.51:6379> setbit peter 100 1        //網站上線100天用戶登陸了一次
  2. (integer) 0
  3. 192.168.4.51:6379> setbit peter 105 1        //網站上線105天用戶登陸了一次
  4. (integer) 0
  5. 192.168.4.51:6379> bitcount peter
  6. (integer) 2

decr key 將key中的值減1,key不存在則先初始化爲0,再減1

  1. 192.168.4.51:6379> set z 10
  2. OK
  3. 192.168.4.51:6379> decr z
  4. (integer) 9
  5. 192.168.4.51:6379> decr z
  6. (integer) 8
  7. 192.168.4.51:6379> decr bb
  8. (integer) -1
  9. 192.168.4.51:6379> decr bb
  10. (integer) -2

decrby key decrement 將key中的值,減去decrement

  1. 192.168.4.51:6379> set count 100
  2. OK
  3. 192.168.4.51:6379> DECRBY cc 20    //定義每次減小20(步長)
  4. (integer) -20
  5. 192.168.4.51:6379> DECRBY cc 20
  6. (integer) -40

get key 返回key存儲的字符串值,若key不存在則返回nil,若key的值不是字串,則返回錯誤,get只能處理字串

  1. 192.168.4.51:6379> get a
  2. (nil)

getrange key start end 返回字串值中的子字串,截取範圍爲start和end,負數偏移量表示從末尾開始計數,-1表示最後一個字符,-2表示倒數第二個字符

  1. 192.168.4.51:6379> set x 123456789
  2. OK
  3. 192.168.4.51:6379> getrange x -5 -1
  4. "56789"
  5. 192.168.4.51:6379> getrange x 0 4
  6. "12345"

incr key 將key的值加1,若是key不存在,則初始爲0後再加1,主要應用爲計數器

  1. 192.168.4.51:6379> set page 20
  2. OK
  3. 192.168.4.51:6379> incr page
  4. (integer) 21

incrby key increment 將key的值增長increment

  1. 192.168.4.51:6379> set x 10
  2. OK
  3. 192.168.4.51:6379> incr x
  4. (integer) 11
  5. 192.168.4.51:6379> incr x
  6. (integer) 12

incrbyfloat key increment 爲key中所儲存的值加上浮點數增量 increment

  1. 192.168.4.51:6379> set num 16.1
  2. OK
  3. 192.168.4.51:6379> incrbyfloat num 1.1
  4. "17.2"

mset key value [key value …] 設置多個key及值,空格分隔,具備原子性

  1. 192.168.4.51:6379> mset j 9 k 29
  2. OK

mget key [key…] 獲取一個或多個key的值,空格分隔,具備原子性

  1. 192.168.4.51:6379> mget j k
  2. 1) "9"
  3. 2) "29"

2)list列表

Redis的list是一個字符隊列,先進後出,一個key能夠有多個值

lpush key value [value…] 將一個或多個值value插入到列表key的表頭,Key不存在,則建立key

  1. 192.168.4.51:6379> lpush list a b c        //list值依次爲c b a
  2. (integer) 3

lrange key start stop 從開始位置讀取key的值到stop結束

  1. 192.168.4.51:6379> lrange list 0 2        //從0位開始,讀到2位爲止
  2. 1) "c"
  3. 2) "b"
  4. 3) "a"
  5. 192.168.4.51:6379> lrange list 0 -1    //從開始讀到結束爲止
  6. 1) "c"
  7. 2) "b"
  8. 3) "a"
  9. 192.168.4.51:6379> lrange list 0 -2        //從開始讀到倒數第2位值
  10. 1) "c"
  11. 2) "b"

lpop key 移除並返回列表頭元素數據,key不存在則返回nil

  1. 192.168.4.51:6379> lpop list        //刪除表頭元素,能夠屢次執行
  2. "c"
  3. 192.168.4.51:6379> LPOP list
  4. "b"

llen key 返回列表key的長度

  1. 192.168.4.51:6379> llen list
  2. (integer) 1

lindex key index 返回列表中第index個值

  1. 192.168.4.51:6379> lindex list 1
  2. "c"

lset key index value 將key中index位置的值修改成value

  1. 192.168.4.51:6379> lpush list a b c d
  2. (integer) 5
  3. 192.168.4.51:6379> lset list 3 test        //將list中第3個值修改成test
  4. OK

rpush key value [value…] 將value插入到key的末尾

  1. 192.168.4.51:6379> rpush list3 a b c    //list3值爲a b c
  2. (integer) 3
  3. 192.168.4.51:6379> rpush list3 d    //末尾插入d
  4. (integer) 4

rpop key 刪除並返回key末尾的值

  1. 192.168.4.51:6379> RPOP list3
  2. "d"

3)hash表

hset key field value 將hash表中field值設置爲value

  1. 192.168.4.51:6379> hset site google 'www.g.cn'
  2. (integer) 1
  3. 192.168.4.51:6379> hset site baidu 'www.baidu.com'
  4. (integer) 1

hget key filed 獲取hash表中field的值

  1. 192.168.4.51:6379> hget site google
  2. "www.g.cn"

hmset key field value [field value…] 同時給hash表中的多個field賦值

  1. 192.168.4.51:6379> hmset site google www.g.cn baidu www.baidu.com
  2. OK

hmget key field [field…] 返回hash表中多個field的值

  1. 192.168.4.51:6379> hmget site google baidu
  2. 1) "www.g.cn"
  3. 2) "www.baidu.com"

hkeys key 返回hash表中全部field名稱

  1. 192.168.4.51:6379> hmset site google www.g.cn baidu www.baidu.com
  2. OK
  3. 192.168.4.51:6379> hkeys site
  4. 1) "google"
  5. 2) "baidu"

hgetall key 返回hash表中全部key名和對應的值列表

  1. 192.168.4.51:6379> hgetall site
  2. 1) "google"
  3. 2) "www.g.cn"
  4. 3) "baidu"
  5. 4) "www.baidu.com"

hvals key 返回hash表中全部key的值

  1. 192.168.4.51:6379> hvals site
  2. 1) "www.g.cn"
  3. 2) "www.baidu.com"

hdel key field [field…] 刪除hash表中多個field的值,不存在則忽略

  1. 192.168.4.51:6379> hdel site google baidu
  2. (integer) 2
相關文章
相關標籤/搜索