1. 程式人生 > >redis學習之資料操作(二)

redis學習之資料操作(二)

資料操作

  • redis是key-value的資料,所以每個資料都是一個鍵值對
  • 鍵的型別是字串
  • 值的型別分為五種:

    • 字串string
    • 雜湊hash
    • 列表list
    • 集合set
    • 有序集合zset
  • 資料操作的全部命令,可以檢視中文網站

  • 接下來逐個介紹操作各型別的命令

string

  • string是redis最基本的型別
  • 最大能儲存512MB資料
  • string型別是二進位制安全的,即可以為任何資料,比如數字、圖片、序列化物件等

命令

設定

  • 設定鍵值
set key value
  • 設定鍵值及過期時間,以秒為單位
SETEX key seconds value
  • 設定多個鍵值
MSET key value [key value ...]

獲取

  • 根據鍵獲取值,如果不存在此鍵則返回nil
GET key
  • 根據多個鍵獲取多個值
MGET key [key ...]

運算

  • 要求:值是數字
  • 將key對應的value加1
INCR key
  • 將key對應的value加整數
INCRBY key increment
  • 將key對應的value減1
DECR key
  • 將key對應的value減整數
DECRBY key decrement

其它

  • 追加值
APPEND key value
  • 獲取值長度
STRLEN key

鍵的命令

  • 查詢鍵,引數支援正則
KEYS pattern
  • 判斷鍵是否存在,如果存在返回1,不存在返回0
EXISTS key [key ...]
  • 檢視鍵對應的value的型別
TYPE key
  • 刪除鍵及對應的值
DEL key [key ...]
  • 設定過期時間,以秒為單位
  • 建立時沒有設定過期時間則一直存在,直到使用使用DEL移除
EXPIRE key seconds
  • 檢視有效時間,以秒為單位
TTL key

hash

  • hash用於儲存物件,物件的格式為鍵值對

命令

設定

  • 設定單個屬性
HSET key field value
  • 設定多個屬性
HMSET key field value [field value ...]

獲取

  • 獲取一個屬性的值
HGET key field
  • 獲取多個屬性的值
HMGET key field [field ...]
  • 獲取所有屬性和值
HGETALL key
  • 獲取所有的屬性
HKEYS key
  • 返回包含屬性的個數
HLEN key
  • 獲取所有值
HVALS key

其它

  • 判斷屬性是否存在
HEXISTS key field
  • 刪除屬性及值
HDEL key field [field ...]
  • 返回值的字串長度
HSTRLEN key field

list

  • 列表的元素型別為string
  • 按照插入順序排序
  • 在列表的頭部或者尾部新增元素

命令

設定

  • 在頭部插入資料
LPUSH key value [value ...]
  • 在尾部插入資料
RPUSH key value [value ...]
  • 在一個元素的前|後插入新元素
LINSERT key BEFORE|AFTER pivot value
  • 設定指定索引的元素值
  • 索引是基於0的下標
  • 索引可以是負數,表示偏移量是從list尾部開始計數,如-1表示列表的最後一個元素
LSET key index value

獲取

  • 移除並且返回 key 對應的 list 的第一個元素
LPOP key
  • 移除並返回存於 key 的 list 的最後一個元素
RPOP key
  • 返回儲存在 key 的列表裡指定範圍內的元素
  • start 和 end 偏移量都是基於0的下標
  • 偏移量也可以是負數,表示偏移量是從list尾部開始計數,如-1表示列表的最後一個元素
LRANGE key start stop

其它

  • 裁剪列表,改為原集合的一個子集
  • start 和 end 偏移量都是基於0的下標
  • 偏移量也可以是負數,表示偏移量是從list尾部開始計數,如-1表示列表的最後一個元素
LTRIM key start stop
  • 返回儲存在 key 裡的list的長度
LLEN key
  • 返回列表裡索引對應的元素
LINDEX key index

set

  • 無序集合
  • 元素為string型別
  • 元素具有唯一性,不重複

命令

設定

  • 新增元素
SADD key member [member ...]

獲取

  • 返回key集合所有的元素
SMEMBERS key
  • 返回集合元素個數
SCARD key

其它

  • 求多個集合的交集
SINTER key [key ...]
  • 求某集合與其它集合的差集
SDIFF key [key ...]
  • 求多個集合的合集
SUNION key [key ...]
  • 判斷元素是否在集合中
SISMEMBER key member

zset

  • sorted set,有序集合
  • 元素為string型別
  • 元素具有唯一性,不重複
  • 每個元素都會關聯一個double型別的score,表示權重,通過權重將元素從小到大排序
  • 元素的score可以相同

命令

設定

  • 新增
ZADD key score member [score member ...]

獲取

  • 返回指定範圍內的元素
ZRANGE key start stop
  • 返回元素個數
ZCARD key
  • 返回有序集key中,score值在min和max之間的成員
ZCOUNT key min max
  • 返回有序集key中,成員member的score值
ZSCORE key member