Redis中的數據都是key/value對,這裏的數據類型指的是value的值的類型 | 數據類型 | 說明 | |--|--| |String | 是Redis中最基本的數據類型,二進制安全的,它能夠包含任意數據類型。如圖片。Redis中String類型的數據上限的512M。 | |List |Redis列表是簡單的字符串列表,按照插入順序排序,你能夠添加一個元素到列表的頭部(左邊)或者尾部(右邊)一個列表最多能夠包含2^32^ - 1元素(4294967295,每一個列表超過40億個元素) | | hash |是一個string類型的field和value的映射表,hash特別適合用於存儲對象。Redis中每一個hash能夠存儲2^32^-1鍵值對(40多億) | | Set |Set 是 String 類型的無序集合。集合成員是惟一的,這就意味着集合中不能出現重複的數據。Redis 中集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是 O(1)。集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。 | | ZSet |有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。有序集合的成員是惟一的,但分數(score)卻能夠重複。集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。 |html
啓動redis服務並登陸客戶端 正則表達式
五種數據類型的數據的結構差別因此命令也不盡相同,可是仍是有一些相通的命令。因此此處先介紹下通用命令redis
建立一個簡單的k/v對數據庫
127.0.0.1:6379> set ps aaa OK
在redis中,默認一共有16個數據庫,編號爲0-15,正常狀況下,用戶登陸成功後,首先看到的是0號庫,能夠手動切換爲其餘庫,使用安全
127.0.0.1:6379> set ps aaa OK 127.0.0.1:6379> select 2 OK 127.0.0.1:6379[2]> select 3 OK 127.0.0.1:6379[3]> get ps (nil) 127.0.0.1:6379[3]> select 0 OK 127.0.0.1:6379> get ps "aaa" 127.0.0.1:6379>
該命令用於在 key 存在時刪除 key。code
27.0.0.1:6379> DEL ps (integer) 1 127.0.0.1:6379> DEL ps (integer) 0 127.0.0.1:6379>
返回數字表示刪除的記錄數xml
序列化給定 key ,並返回被序列化的值。htm
127.0.0.1:6379> DUMP name "\x00\x02ps\b\x00\xed\x8fe\xc3\x9ck\"\n" 127.0.0.1:6379> DUMP k1 (nil)
若是key不存在返回nil對象
檢查key是否存在blog
127.0.0.1:6379> EXISTS name (integer) 1 127.0.0.1:6379> EXISTS ps (integer) 0
1表示存在,0表示不存在
以秒爲單位,返回給定 key 的剩餘生存時間(TTL, time to live)
127.0.0.1:6379> ttl name (integer) -1 127.0.0.1:6379> ttl ps (integer) -2
-2表示key不存在,-1表示沒有設置有效時間,不會過時,咱們能夠經過EXPIRE key 設置有效時間
是指有效時間,單位秒
127.0.0.1:6379> EXPIRE name 10 (integer) 1 127.0.0.1:6379> ttl name (integer) 5 127.0.0.1:6379> ttl name (integer) 1 127.0.0.1:6379> ttl name (integer) -2
5是剩餘的有效時間。
一樣是設置過時時間,只是單位是毫秒
127.0.0.1:6379> PEXPIRE name 1000 (integer) 1 127.0.0.1:6379> ttl name (integer) -2
和ttl命令同樣,只是返回單位是毫秒
127.0.0.1:6379> PEXPIRE name 10000 (integer) 1 127.0.0.1:6379> PTTL name (integer) 8171 127.0.0.1:6379> PTTL name (integer) 5343 127.0.0.1:6379> PTTL name (integer) 4452 127.0.0.1:6379>
經過正則表達式查找符合條件的key
127.0.0.1:6379> set name zhangsan OK 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> set sex nv OK 127.0.0.1:6379> KEYS * 1) "sex" 2) "age" 3) "name"
keys * 查詢全部的key
從當前數據庫中隨機返回一個key
127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex" 127.0.0.1:6379> RANDOMKEY "sex"
返回能夠對應的數據類型
127.0.0.1:6379> TYPE name string 127.0.0.1:6379> TYPE age string 127.0.0.1:6379> TYPE sex string 127.0.0.1:6379> TYPE ps none
不存在返回none
修改key的名稱
127.0.0.1:6379> RENAME age ages OK 127.0.0.1:6379> EXISTS age (integer) 0 127.0.0.1:6379> EXISTS ages (integer) 1
清空當前數據庫
127.0.0.1:6379> KEYS * 1) "ages" 2) "sex" 3) "name" 127.0.0.1:6379> FLUSHDB OK 127.0.0.1:6379> keys * (empty list or set)
清空全部庫