1. 程式人生 > >Redis資料型別及存取操作

Redis資料型別及存取操作

概要

          前面我們學習瞭如何安裝Redis資料庫,這裡我們來學習一下Redis的資料型別及簡單的存取操作

連線Redis服務

  • 連線本地Redis服務

          啟動 redis 客戶端,開啟終端並輸入命令 redis-cli,即可連線本地Redis服務。輸入ping命令,檢測Redis服務是否啟動,如下:

~$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
  • 連線遠端Redis服務

          如果需要連線遠端的redis服務,我們需要指定相應的遠端伺服器相關資訊,語法:

$ redis-cli
-h host -p port -a password

這裡我們以127.0.0.1為例說明:

$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379> PING
PONG
redis 127.0.0.1:6379>

Redis資料型別

          Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。

  • String(字串)

          string是Redis最基本的型別,它可以包含任何資料,一個鍵最大能儲存512MB。以下例項展示如何存取一個string型別:

redis 127.0.0.1:6379> SET name "Hello redis!"
OK
redis 127.0.0.1:6379> GET name
"Hello redis!"
  • Hash(雜湊)

          Redis hash是一個鍵值對集合,是string型別的field和value的對映表,hash特別適合用於儲存物件。每個hash可以儲存 2^32 - 1鍵值對(40多億)。以下例項展示如何存取Hash型別:

127.0.0.1:6379> hmset user:1 username zhangsan password mypass
OK
127.0
.0.1:6379> hgetall user:1 1) "username" 2) "zhangsan" 3) "password" 4) "mypass"
  • List(列表)

          Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(lpush)或者尾部(rpush)。每個list可以儲存 2^32 - 1個元素(40多億)。以下例項展示如何存取列表:

127.0.0.1:6379> lpush mylist first
(integer) 1
127.0.0.1:6379> lpush mylist second
(integer) 2
127.0.0.1:6379> rpush mylist third
(integer) 3
127.0.0.1:6379> lrange mylist 0 3
1) "second"
2) "first"
3) "third"
  • Set(集合)

           Redis的Set是string型別的無序集合,Set中的元素。集合是通過雜湊表實現的,所以新增,刪除,查詢的複雜度都是O(1)。新增成功返回1,失敗返回0。以下例項展示如何存取Set:

127.0.0.1:6379> sadd mset element1
(integer) 1
127.0.0.1:6379> sadd mset element2
(integer) 1
127.0.0.1:6379> sadd mset element3
(integer) 1
127.0.0.1:6379> sadd mset element2
(integer) 0
127.0.0.1:6379> smembers mset
1) "element3"
2) "element2"
3) "element1" 
  • Zset(sorted set:有序集合)

          Redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的元素。
不同的是每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。以下例項展示如何存取ZSet:

127.0.0.1:6379> zadd zset 0 element1
(integer) 1
127.0.0.1:6379> zadd zset 1 element2
(integer) 1
127.0.0.1:6379> zadd zset 5 element3
(integer) 1
127.0.0.1:6379> zadd zset 4 element4
(integer) 1
127.0.0.1:6379> zrangebyscore zset 0 5
1) "element1"
2) "element2"
3) "element4"
4) "element3"