Redis02-五大數據類型

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號庫,能夠手動切換爲其餘庫,使用安全

SELECT

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>

DEL命令

該命令用於在 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

DUMP命令

序列化給定 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對象

EXISTS命令

檢查key是否存在blog

127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS ps
(integer) 0

1表示存在,0表示不存在

TTL命令

以秒爲單位,返回給定 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 設置有效時間

EXPIRE

是指有效時間,單位秒

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是剩餘的有效時間。

PEXPIRE命令

一樣是設置過時時間,只是單位是毫秒

127.0.0.1:6379> PEXPIRE name 1000
(integer) 1
127.0.0.1:6379> ttl name
(integer) -2

PTTL

和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>

KEYS

經過正則表達式查找符合條件的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

RANDOMKEY

從當前數據庫中隨機返回一個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"

TYPE命令

返回能夠對應的數據類型

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

RENAME

修改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

flushdb

清空當前數據庫

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)

flushall

清空全部庫

其餘通用命令

相關文章
相關標籤/搜索