1. 程式人生 > >Redis中的五種資料型別簡介

Redis中的五種資料型別簡介

上篇文章我們介紹瞭如何在Linux中安裝Redis,本文我們來了解下Redis中的五種資料型別。

本文是Redis系列的第二篇文章,瞭解前面的文章有助於更好的理解本文:

五大資料型別介紹

redis中的資料都是以key/value的形式儲存的,五大資料型別主要是指value的資料型別,包含如下五種:

STRING

STRING是redis中最基本的資料型別,redis中的STRING型別是二進位制安全的,即它可以包含任何資料,比如一個序列化的物件甚至一個jpg圖片,要注意的是redis中的字串大小上限是512M。

LIST

LIST是一個簡單的字串列表,按照插入順序進行排序,我們可以從LIST的頭部(LEFT)或者尾部(RIGHT)插入一個元素,也可以從LIST的頭部(LEFT)或者尾部(RIGHT)彈出一個元素。

HASH

HASH類似於Java中的Map,是一個鍵值對集合,在redis中可以用來儲存物件。

SET

SET是STRING型別的無序集合,不同於LIST,SET中的元素不可以重複。

ZSET

ZSET和SET一樣,也是STRING型別的元素的集合,不同的是ZSET中的每個元素都會關聯一個double型別的分數,ZSET中的成員都是唯一的,但是所關聯的分數可以重複。

OK,通過上面的介紹,相信小夥伴們對五大資料型別都有一個大致的認識了,接下來我們就來看看這五種資料型別要怎麼操作。

key相關的命令

由於五大資料型別的資料結構本身有差異,因此對應的命令也會不同,但是有一些命令不管對於哪種資料型別都是存在的,我們今天就先來看看這樣一些特殊的命令。

首先通過redis-server redis.conf命令啟動redis,再通過redis-cli命令進入到控制檯中,如下:

p295

首先我們可以通過set命令插入一條記錄:

127.0.0.1:6379> set k1 v1
OK

DEL命令

看到OK表示插入成功。通過DEL命令我們可以刪除一個已經存在的key,如下:

127.0.0.1:6379> DEL k1
(integer) 1

看到(integer) 1表示資料已經刪除成功。

DUMP命令

DUMP命令可以序列化給定的key,並返回序列化之後的值:

127.0.0.1:6379> DUMP k1
"\x00\x02v1\b\x00\xe6\xc8\\\xe1bI\xf3c"

EXISTS命令

EXISTS命令用來檢測一個給定的key是否存在,如下:

127.0.0.1:6379> EXISTS k1
(integer) 1
127.0.0.1:6379> EXISTS k2
(integer) 0
127.0.0.1:6379>

上面的執行結果表示k1存在而k2不存在。

TTL命令

TTL命令可以檢視一個給定key的有效時間:

127.0.0.1:6379> TTL k1
(integer) -1
127.0.0.1:6379> TTL k2
(integer) -2

-2表示key不存在或者已過期;-1表示key存在並且沒有設定過期時間(永久有效)。當然,我們可以通過下面的命令給key設定一個過期時間:

EXPIRE命令

EXPIRE命令可以給key設定有效期,在有效期過後,key會被銷燬。

127.0.0.1:6379> EXPIRE k1 30
(integer) 1
127.0.0.1:6379> TTL k1
(integer) 25
127.0.0.1:6379>

30表示30秒,TTL k1返回25表示這個key的有效期還剩25秒。

PERSIST命令

PERSIST命令表示移除一個key的過期時間,這樣該key就永遠不會過期:

127.0.0.1:6379> EXPIRE k1 60
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 57
127.0.0.1:6379> PERSIST k1
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -1

PEXPIRE命令

PEXPIRE命令的功能和EXPIRE命令的功能基本一致,只不過這裡設定的引數是毫秒:

127.0.0.1:6379> PEXPIRE k1 60000
(integer) 1

PTTL命令

PTTL命令和TTL命令基本一致,只不過PTTL返回的是毫秒數:

127.0.0.1:6379> PTTL k1
(integer) 25421

KEYS 命令

KEYS命令可以獲取滿足給定模式的所有key,比如:

127.0.0.1:6379> KEYS *
1) "k3"
2) "k2"
3) "k1"

KEYS *表示獲取所有的KEY,*也可以是一個正則表示式。

OK,key相關的命令我們就介紹這麼多,當然還有很多其他的,小夥伴們可以參考官方文件http://www.redis.cn/commands.html。小夥伴在看官方文件時,有什麼問題歡迎留言討論。

更多資料請關注公眾號:
在這裡插入圖片描述