1. 程式人生 > >Redis資料庫總結

Redis資料庫總結

簡介

與MySQL不同,Redis是一個基於記憶體的資料庫,所以相對於基於硬碟的MySQL,它的儲存空間更小,但執行速度更快。Redis由義大利人Salvatore Sanfilippo開發的一款記憶體快取記憶體資料庫,該軟體由C語言編寫,Redis是一個key-value儲存系統,它支援豐富的資料型別,如string、list、set、zset、hash。不同於MySQL,redis是沒有賬戶和密碼的。

安裝及進入退出

Ubuntu下的安裝:

sudo apt-get update #更新
sudo apt-get install redis-server #安裝redis

進入:

reids-cli

退出:

exit

string型別

string型別包含了整形、浮點型、字串。

  • 設定
set key value
  • 獲取
get key
  • 檢視過期時間:返回-1表示永久、-2表示不存在、其他數字表示具體的有效時間
ttl key
  • 設定過期時間
expire key seconds #對已存在的key
set key value ex seconds #設定key的同時設定有效時間
setex key seconds value  #設定key的同時設定有效時間
  • 追加:返回值的長度
append key value
  • 同時設定、獲取多個
mset key value key value...
mget key key ...
  • 檢視所有key
keys *
  • 刪除key
del key
  • 檢視key是否存在:存在返回1,不存在返回0
exists key
  • 檢視key型別
type key
  • 對key的value進行運算,返回值
incr key #加一
decr key #減一
incrby key x #加x
decrby key x #減x

lise型別

list的型別是實現隊和棧的操作,元素不唯一,佇列是先進先出,棧是先進後出。

  • 設定:左新增是實現棧的操作,右新增是實現佇列的操作。對已存在的key,則是實現在後面新增,返回的是元素的個數。
lpush key value #棧
rpush keu value #隊
  • 檢視
lrange key start stop
  • 獲取list的元素個數
llen key
  • 檢視指定索引的元素
lindex key index
  • 刪除
lpop key #刪除最先出來的元素
rpop key #刪除最後出來的元素
lrem key count value #count是刪除最大數量,value是指定刪除的元素值,count為0,表示刪除所有指定的value,count<0表示從右往左刪除

hash型別

hash型別的基本格式是key:(filed:value),它是一個string型別的field和value的對映表,特別適合用於儲存物件,hash的key必須是唯一的。

  • 設定
hset key field value
  • 獲取
hget key field
  • 刪除
hdel key field
  • 設定多個
hmset key field value field value ...
  • 獲取多個
hmget key field field...
  • 獲取全部field
hkeys key
  • 獲取全部的value
hvals key
  • 獲取全部的field value
hgetall key
  • 獲取field的個數
hlen key
  • 獲取field的型別
type key

set型別

set型別即集合的意思,裡面的元素是唯一且無序的,一個鍵可對應多個值。

  • 設定
sadd key value [value] [value]...
  • 獲取
smembers key
  • 刪除:分指定刪除和隨機刪除
srem key value #指定刪除
spop key #隨機刪除
  • 移動一個集合的值到另一個集合:移動成功返回1,失敗返回0。
smove key1 key2 value #移動key1的value到key2中
  • 判斷集合存在某個值:存在返回1,不存在返回0。
sismember key value
  • 取交集及把交集部分合併到新的集合中
sinter key1 key2 #取交集
sinterstore newkey key1 key2 #交集合併到集合
  • 取並集及把並集部分合併到新的集合中
sunion key1 key2
sunionstore newkey key1 key2
  • 取差集及把差集部分合併到新的集合中
sdiff key1 key2
sdiffstore newkey key1 key2
  • 獲取集合個數
scard key
  • 隨即返回一個元素
srandmember key

sorted set型別

有序集合的基本格式是key score value [score value]...,裡面的元素是唯一且有序的,其有序的依據就是score,即權重,權重越大,順序就排的越前面。

設定

zadd key score value [score value]...

獲取:分正序獲取和倒序獲取

zrange key start stop #正序
zrevrange key start stop #倒序

刪除

zrem key value

返回索引:分為正序索引和倒序索引

zrank key value #正序
zrevrank key value #倒序

檢視有序集合的元素個數

zcard key

返回給定權重範圍內的元素

zrangebyscore key start stop withscores

返回給定權重範圍內的元素個數

zcount key start stop

檢視元素的權重值

zscore key value

刪除指定索引的元素

zremrangebyrank key start stop

刪除指定權重範圍內的元素

zremrangebyscore key start stop