一、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]