redis入門

redis快速入門


一.使用簡介
1.安裝就不要說了吧,使用前要先啓動:redis-server
清空所有數據  flushdb
關閉redis服務  redis-cli -p 6379 shutdown
2.客戶端登錄   redis-cli -h host -p port -a “password” 進入    redis 127.0.0.1:6379>
輸入PING命令,如下圖所示。
redis 127.0.0.1:6379> ping
PONG
這說明你已經成功地在您的機器上安裝Redis。
3.查看配置。
在Redis有配置文件(redis.conf)可在Redis的根目錄下找到。可以通過Redis的CONFIG命令
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
設置所有Redis的配置。
redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"
redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"


二.數據類型(字符串,哈希,列表,集合,有序集合)
1.字符串
1)設值          2)取值
redis 127.0.0.1:6379> SET yiibai redis
OK
redis 127.0.0.1:6379> GET yiibai
"redis"
redis 127.0.0.1:6379> MGET key1 key2 someOtherKey
1) "Hello"
2) "World"
3) (nil)
3)更改鍵名,值不變
redis 127.0.0.1:6379> GETSET mynewkey "This is my test key"
(nil)
redis 127.0.0.1:6379> GETSET mynewkey "This is my new value to test getset"
"This is my test key"
4)值遞增INCR   遞減DECR
redis 127.0.0.1:6379> SET visitors 1000
OK
redis 127.0.0.1:6379> INCR visitors
(integer) 1001
redis 127.0.0.1:6379> GET visitors
(integer) 1001

2.哈希值
Redis的哈希值是字符串字段和字符串值之間的映射,所以他們是表示對象的完美數據類型  
一個對象下面可以存很多個字段名及對應的字段值
在Redis中的哈希值,可存儲超過400十億鍵值對。
1).設值
redis 127.0.0.1:6379> HMSET yiibai name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL yiibai

1) "name"           //屬性名
2) "redis tutorial" //屬性值
3) "description"    //屬性名
4) "redis basic commands for caching"  //屬性值
5) "likes"
6) "20"
7) "visitors"
8) "23000"

如下表所示哈希一些基本的命令:

2)Redis HMGET命令用於獲取與存儲在鍵散列指定的字段相關聯的值。如果字段中哈希不存在,則nil值被返回。
redis 127.0.0.1:6379> HMGET myhash field1 field2 nofield
1) "foo"
2) "bar"
3) (nil)
3)Redis HSET命令用於在存儲的關鍵值的散列設置字段。
redis 127.0.0.1:6379> HSET myhash field1 "foo"
OK
redis 127.0.0.1:6379> HGET myhash field1
"foo"
返回整數
    1 如果字段是哈希值和一個新字段被設置。
    0 如果字段已經存在於哈希並且值被更新。

3.列表
Redis列表是簡單的字符串列表,排序插入順序。您可以在頭部或列表的尾部Redis的列表添加元素。
1)  設值  取值
redis 127.0.0.1:6379> LPUSH tutorials redis
(integer) 1
redis 127.0.0.1:6379> LPUSH tutorials mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH tutorials mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE tutorials 0 10

1) "mysql"
2) "mongodb"
3) "redis"

2)取出頭部
Redis BLPOP命令用於刪除和獲取列表中的第一個元素,或阻塞直到有可用。 BLPOP命令只返回第一個元素(如果有的話),或阻塞客戶端對指定的時間執行任意命令。
redis 127.0.0.1:6379> BLPOP list1 100
上面的例子會阻止客戶端100秒來執行任意命令。如果有任何數據來自於指定的鍵list1則返回,否則後返回百秒nil值。
(nil)
(100.06s)
3)取出尾部,或阻塞直到有可用    BRPOP
4)獲取列表中單個值
redis 127.0.0.1:6379> LINDEX list1 0
"foo"
redis 127.0.0.1:6379> LINDEX list1 -1
"bar"
5)獲取列表長度   
LLEN  key
6)獲取並取出列表中的第一個元素/最後一個
LPOP key    /      RPOP key
7)在前面加上一個或多個值的列表
LPUSH key value1,value2...
8)刪除某個位置的元素


4.集合
集合成員是唯一的,這就意味着集合中不能出現重複的數據。Redis 中 集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。
1)設值取值
redis 127.0.0.1:6379> SADD w3ckey redis
(integer) 1
redis 127.0.0.1:6379> SADD w3ckey mongodb
(integer) 1
redis 127.0.0.1:6379> SADD w3ckey mysql
(integer) 1
redis 127.0.0.1:6379> SADD w3ckey mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS w3ckey
 1) "mysql"
 2) "mongodb"
 3) "redis"

2)Redis Srem 命令用於移除集合中的一個或多個成員元素,不存在的成員元素會被忽略。
3)Redis Spop 命令用於移除並返回集合中的一個隨機元素。
  1. redis 127.0.0.1:6379> SREM myset1 "hello"
  2. (integer) 1
  3. redis 127.0.0.1:6379> SREM myset1 "foo"
  4. (integer) 0


5.有序集合
Redis有序集合類似Redis集合存儲在設定值唯一性。不同的是,一個有序集合的每個成員帶有分數,用於以便採取有序set命令,從最小的到最大的分數有關。
1) 設置和獲取分數,值
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES

1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
在上述例子中的三個值由命令ZADD插入其分數在redis排序集合並命名tutorials。

2)ZCARD key獲取有序集合的成員數

3)ZCOUNT key min max 計算在有序集合中指定區間分數的成員數

4)Redis Zrank 返回有序集中指定成員的排名。其中有序集成員按分數值遞增(從小到大)順序排列。
  1. redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES  # 顯示所有成員及其 score 值
  2. 1) "peter"
  3. 2) "3500"
  4. 3) "tom"
  5. 4) "4000"
  6. 5) "jack"
  7. 6) "5000"
  8.  
  9. redis 127.0.0.1:6379> ZRANK salary tom  # 顯示 tom 的薪水排名,第二
  10. (integer) 1

5)Redis Zrem 命令用於移除有序集中的一個或多個成員,不存在的成員將被忽略。 

  1. redis 127.0.0.1:6379> ZREM page_rank baidu.com bing.com
  2. (integer) 
6)Redis Zremrangebyscore 命令用於移除有序集中,指定分數(score)區間內的所有成員。
  1. redis 127.0.0.1:6379> ZREMRANGEBYSCORE salary 1500 3500 # 移除所有薪水在 1500 到 3500 內的員工
  2. (integer) 2
7)Redis Zremrangebyrank 命令用於移除有序集中,指定排名(rank)區間內的所有成員。
  1. redis 127.0.0.1:6379> ZREMRANGEBYRANK salary 0 1 # 移除下標 0 至 1 區間內的成員
  2. (integer) 2
6.對每種類型的鍵的設置
1)DEL key 該命令用於在 key 存在是刪除 key。
2)EXISTS key 檢查給定 key 是否存在。
3)MOVE key db 將當前數據庫的 key 移動到給定的數據庫 db 當中。
4)TTL key 以秒爲單位,返回給定 key 的剩餘生存時間(TTL, time to live)。
5)RENAME key newkey 修改 key 的名稱
6)指定鍵的過期時間:expire key_name seconds
7)檢查鍵是否存在: keys key_name 如:keys myname
keys命令還接收正則表達式 keys key_name *name*

7.發佈訂閱
(1)開啓一個redis端:
訂閱rdischat:subscibe redischat redischat_2
或 psubscribe *redis*
(2)開啓另一個redis端:
在redischat頻道發佈消息:publish redischat “this is redischat_channel
publish vvvredischatlll “this is vvvredislll_channel like *redis*
(3)查看活躍的頻道有哪些 pubsub channels
(4)訂閱redischat的客戶端回收到消息
(5)退訂
unsubscribe redischat redischat_2
   punsubscribe redischat
8.事務
redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> SET book-name "Mastering C++ in 21 days"
QUEUED

redis 127.0.0.1:6379> GET book-name
QUEUED

redis 127.0.0.1:6379> SADD tag "C++" "Programming" "Mastering Series"
QUEUED

redis 127.0.0.1:6379> SMEMBERS tag
QUEUED

redis 127.0.0.1:6379> EXEC
1) OK
2) "Mastering C++ in 21 days"
3) (integer) 3
4) 1) "Mastering Series"
   2) "C++"
   3) "Programming"


半途取消事務執行:
redis 127.0.0.1:6379> MULTI
OK

redis 127.0.0.1:6379> PING
QUEUED

redis 127.0.0.1:6379> SET greeting "hello"
QUEUED

redis 127.0.0.1:6379> DISCARD
OK


redis官方文檔:http://www.redis.net.cn/tutorial/3501.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章