淺析Redis五種資料型別及簡單使用
php-高階程式設計QQ群:490910618
一.Redis是什麼
Redis是高效能Key-Value資料庫,屬於非關係型資料庫的一種。
二.Redis支援的資料型別
共支援5種資料型別:string,list,hash,set,zset
1.string (字串型別)
string可以是字串,數字。實際儲存在redis中的型別為string,遇到數值計算時,才會轉換成int型別去做運算。
最常用:
SET 設定鍵儲存的值 如 SET name zhangshengnan/ SET age 24
GET 獲取鍵儲存的值 如 GET name / GET age
DEL 刪除鍵值對 如 DEL name / DEL age
下面這些是對鍵儲存的值的一些操作:
APPEND 追加資料到鍵儲存的值後面 如 APPEND age 9(age原本為24,執行本條後變為249
INCR 將鍵儲存的值+1 如 INCR age (age原本為24,執行本條後變為25)
DECR 將鍵儲存的值-1 如 DECR age (age原本為24,執行本條後變為23)
INCRBY 將鍵儲存的值+number 如 INCRBY age 10(age原本為24,執行本條後變為34)
DECRBY 將鍵儲存的值-number 如 DECRBY age 10 (age原本為24,執行本條後變為14)
下面這些事對鍵的一些操作:
EXISTS 檢查鍵是否存在 如 EXISTS name
EXPIRE 設定某鍵的過期時間 如 EXPIRE name 3600 (單位秒)
PEXPIRE 設定某鍵的過期時間 如 PEXPIRE name 36000000(單位毫秒)
PERSIST 刪除過期鍵 如 PERSIST name
TTL 獲取剩餘到期時間 如 TTL name(單位秒)
PTTL 獲取剩餘到期時間 如PTTL name(單位毫秒)
RANDOMKEY 從redis返回隨機鍵 如 RANDOMKEY
RENAME 更改鍵名 如 RENAME name familyname
TYPE 返回鍵儲存的值的資料型別 如 TYPE age
2. list (列表)
列表可以理解成把單個string型別練成連結串列,redis的list支援正反向查詢(即雙向連結串列),list可做佇列,也可做棧使用,主要的用法就是push和pop。
最常用:
RPUSH 將值推到列表右端 如 RPUSH student zhangshengnan
LPUSH 將值推到列表左端 如 LPUSH student zhangshengnan
RPOP 將列表最右端的值彈出並返回 如 RPOP student
LPOP 將列表最左端的值彈出並返回 如 LPOP student
較常用:
LLEN 獲取列表長度 如 LLEN student
LRANGE 獲取列表上指定範圍的所有值 如 LRANGE student 0 -1 (這裡0 到-1中的-1指最後一個元素)
LINDEX 獲取列表上指定位置的值 如 LINDEX student 0(這裡返回student中的第一個值即:zhangshengnan)
3.hash (雜湊雜湊)
這個非常容易理解,hash的key對應的是一個map,map裡面的結構是field,value對,數字字串都可以。
最常用:
HKEYS 獲取hash中所有的key 如 HKEYS student
HEXISTS 判斷key對應field是否存在 如 HEXISTS student name
HSETNX 判斷key對應field不存在時賦值value 如 HSETNX student name zhangshengnan
HSET 設定hash中key對應field的值 如 HSET student name zhangshengnan
HGET 獲取hash中key對應field的值 如 HGET student name
HGETALL 獲取hash中key對應的多有field,value對 如 HGETALL student
HDEL 刪除hash中key對應field及值 如 HDEL student name
4.set (集合)
顧名思義,就是一些不重複的值,放在一起的合集。
最常用:
SADD 新增某元素到集合中 如 SADD student zhangshengnan
SREM 刪除集合中指定的值 如 SREM student zhangshengnan
SMEMBERS 獲取key對應的所有值 如 SMEMBERS student
SISMEMBER 判斷某值是否存在於集合中 如 SISMEMBER student zhangsan
SPOP 隨機彈出一個集合中的值 如 SPOP student
5.zset (有序集合)
類似與集合,不同之處為鍵被稱為member,多一個score用來排序。
最常用:
ZADD 將一個有score的元素新增到集合 如 ZADD student 100 zhangshengnan
ZSCORE 獲取某元素分數 如 ZSCORE student zhangshengnan
ZRANGE 獲指範圍內元素按score從小到大排序 如 ZRANGE student 0 -1 withscores
ZREVRANGE 獲取範圍內元素按socre從大到小排序 如 ZREVRANGE student 0 -1 withscores
ZRANGEBYSCORE 獲取指定範圍socre的元素 如 ZRANGEBYSCORE student 0 200 withscores
ZREM 刪除有序集合中指定的元素 如 ZREM student zhangshengnan