Redis學習筆記四、Redis數據類型概念

一、Redis 數據類型

String :字符串 一個key對應一個value 基本數據類型 一個鍵最大值能存儲512MB

> SET <String> <value>

> GET <String>

Hash :哈希 是一個鍵值(key=>value)對集合。

Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特別適合用於存儲對象。

> HMSET <String> field1 <Value1> field2 <Value2>

> HGET <String> field1

List:列表

> lpush <String> <Value>

>lrange <String>

Set:集合

>sadd String <value>

>smembers <String>

zset(sorted set: 有序集合)

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。

zset的成員是唯一的,但分數(score)卻可以重複。

> zadd String value

>ping //該命令用於檢測redis 服務是否啓動

 

二、命令:

1、基本命令

Redis 客戶端的基本語法爲

# redis-cli //該命令會連接本地的redis 服務

# Redis-cli -h host -p port -a password //在遠程服務上執行命令

# redis-cli --raw 避免中文亂嗎

1)DEL key //如果key 存在時刪除key

2)DUMP key //序列化給定key, 並返回被序列化的值

3)EXISTS key //檢查給定key 是否存在

4)EXPIRE key seconds //爲給定的key 設置過期時間 以秒計

5)PEXPIRE key millseconds //設置 key 的過期時間以毫秒計

6)EXPIREAT key timestamp //設置過期時間 不同在於EXPIREAT 命令接收的時間參數是UNIX時間戳秒

7)PEXPIREAT key milliseconds-timestamp 就收時間戳毫秒

8)KEYS pattern //查找所有符合給定模式的key

9)MOVE key db 將當前數據庫的key移動到給定的數據庫db當中

10)PERSIST key //移除key的過期時間,key將持久保持

11)PTTL key //以毫秒爲單位返回key的剩餘的過期時間

12)TTL key //以秒爲單位返回給定key的剩餘生存時間

13)RANDOMKEY //從當前數據庫中隨機返回一個key

14)RENAME key newKey //修改key的名稱

15)RENAMENX key newkey //僅當newkey 不存在時,將key改名爲newkey

16)TYPE key //返回key所存儲的值的類型

 

2、發佈訂閱

Redis 發佈訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息。

Redis 客戶端可以訂閱任意數量的頻道。

當有新消息通過 PUBLISH 命令發送給頻道 channel1 時, 這個消息就會被髮送給訂閱它的三個客戶端:

2)發佈訂閱命令

PSUBSCRIBE pattern [patern …..]

訂閱一個或多個符合給定模式的頻道

 

PUBSUB subcommand [argument [argument….]]

查看訂閱與發佈系統狀態

 

PUSLISH channel message

將信息發送到指定的頻道

 

PUNSUBSCRIBE [channel [channel ….]]

退訂所有給定模式的頻道

 

SUBSCRIBE channel [channel…..]

訂閱給定的一個或多個頻道的信息

 

UNSUBSCRIBE [channel [channel…..]]

指退訂給定的頻道

 

3、事務

Redis 事務可以一次執行多個命令,並且帶有以下三個重要的保證

1)、批量操作在發送EXE 命令前被放入隊列緩存

2)、收到EXEC命令後事務執行,事務中任意命令執行失敗,其餘的命令依然被執行。

3)、在事務的執行過程,其他客戶端提交的命令請求不會插入到事務執行命令序列中

 

一個事務從開始到執行會經歷以下三個階段

開始事務===> 命令入隊 ==> 執行事務

實例:

> MULTI

> SET book “java”

> GET book

> SADD tag “c++” “php”

>SMEMBERS tag

> EXEC

單個redis 命令的執行時原子性的, Redis 事務的執行並不是原子性的。量指令並非原子化的操作,中間某條指令的失敗不會導致前面已做指令的回滾,也不會造成後續的指令不做。

 

 

1)DISCARD //取消事務,放棄執行事務塊內的所有命令

2)EXEC // 執行所有事務塊內的命令

3)MULTI // 標記一個事務塊的開始

4)UNWATCH //取消WATCH 命令對所有key的監視

5)WATCH [ key [key ……]] //監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷。

 

4、Redis 數據備份與恢復

該命令將在 redis 安裝目錄中創建dump.rdb文件。

>SAVE

如果需要恢復數據,只需將備份文件 (dump.rdb) 移動到 redis 安裝目錄並啓動服務即可。獲取 redis 目錄可以使用 CONFIG 命令

> CONFIG GET dir

創建 redis 備份文件也可以使用命令 BGSAVE,該命令在後臺執行。

>BGSAVE

5、Redis 安全

通過以下命令查看是否設置了密碼驗證默認情況下 requirepass 參數是空的,意味着你無需通過密碼驗證就可以連接到 redis 服務

127.0.0.1:6379> CONFIG get requirepass

1) "requirepass"

2) ""

設置密碼

>CONFIG set requirepass “password”

> CONFIG get requirepass

登錄

>AUTH password

6、性能測試

redis-benchmark [option] [option value]

參考鏈接菜鳥教程

 

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