目錄
一、Redis基本知識與Redis鍵(key)常用操作命令。
二、Redis的五大值的數據類型。(value)
三、Redis關于鍵(key)的值常用操作指令表格統計。
(1)字符串(String)。
(2)列表。(List)?
(3)哈希表(Hash)
(4)集合。(Set)
(5)有序集合。(ZSet)
一、Redis基本知識與Redis鍵(key)常用操作命令。
- redis的默認端口6379。mysql默認端口號3306。
默認16個數據庫,類似數組的下標從0開始,初始默認使用0號庫。可以使用select index來切換數據庫,如:select 1,表示切換到第2個庫。 統一密碼管理,所有的庫密碼相同。
- Redis鍵(key)的相關操作命令。
二、Redis的五大值的數據類型。(value)
- redis字符串。(String)
- redis列表。(List)
- redis集合。(Set)
- redis哈希表。(Hash)
- redis有序集合(Zset)
三、Redis關于鍵(key)的值常用操作指令表格統計。
(1)字符串(String)。
- Redis值(字符串)常用命令的表格統計。
命令 基本介紹 set key value 添加鍵值對。若鍵存在,會覆蓋原值。(簡單設置字符串值) get key 獲取鍵對應值。 setnx key value key不存在時,才會設置對應的key與value。 append key value 原有鍵的值后追加值。。 strlen key 獲取字符串值的長度。 mset k1 v1 k2 v2 ... 同時設置多個key-value。 msetnx k1 v1 k2 v2 ... 原子性:當所有的key就不存在值時,則設置成功。 mget?k1 k2... 同時獲取多個key對應的value。 getrange key start end 獲取值的范圍。與Java的substring很像,提取指定范圍的字符串。 setrange key start value 覆蓋指定起始位置的值。 setex key 過期時間 value 設置鍵與過期時間與值。 getset key value 設置新值同時返回舊值。
- Redis值(字符串)關于數字值的遞增、遞減命令的表格統計。
命令 基本介紹 incr key 指定key的數字值的遞增。如果key不存在,默認為1。 decr key 指定key的數字值的遞減。如果key不存在,默認為-1。 incrby key +value 對指定key遞增指定數值。如果key不存在,則在0基礎上+遞增的值。 decrby key -value 對指定的key遞減指定數值。如果key不存在,則在0基礎上-遞增的值。
(2)列表。(List)?
- Redis列表是簡單的字符串列表。底層實際上是使用雙向鏈表實現的。
- Redis值(列表)常用命令的表格統計。
命令 基本介紹 lpush k1 v1 k2 v2 ... 從左邊插入一個或多個值 rpush?k1 v1 k2 v2 ... 從右邊插入一個或多個值 lrange key start stop 查詢指定列表key的指定區間的元素。
正數下標:0第一個元素,負數下標:-1倒數1個元素,-2倒數第2個lprop key count 從左邊彈出多個元素,count可以省略,默認值為1rprop key count 從右邊彈出多個元素,count可以省略,默認值為1 rproplpush
source destination從一個列表右邊彈出一個元素并放到另外一個列表中 lindex key index 查詢指定索引位置的元素(從左到右) llen key 獲取指定列表的長度 linsert key before|after
value newvalue 將值newvalue插入到列表key當中,位于值value之前或之后。value不存在列表中時,不執行任何操作lrem key count value 根據參數count的值,移除列表中與參數value相等的元素
若count>0,從表頭開始搜索,移除與value相等的元素,數量為count若count<0,從表尾開始搜索,移除與value相等的元素,數量為count絕對值
若count=0,移除表中所有與 value 相等的值。lset key index value 將列表key的下標索引為index的元素的值設置為value。
(3)哈希表(Hash)
Redis hash是一個鍵值對集合。 Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。 類似于java里面的Map<String,Object>。 Hash類型對應的數據結構是:ziplist(壓縮列表),hashtable(哈希表)。當field-value長度較短個數較少時,使用ziplist,否則使用hashtable。
命令 基本介紹 hset key field value[field1 value1?field2?value2?...]設置單個或多個field及value。
將哈希表key中的域field的值設為value 。hget key field 獲取(查詢)指定field的值value。 hgetall key 返回指定hash表的所有域field以及值value。 hexists key field 判斷給定的域field是否存在。1:存在,0:不存在hkeys key 返回指定hash表的所有的域filed hvals key返回指定hash表的所有的值value hlen key 返回指定hash表的域filed數量 hincrby key field increment 給指定hash表的指定域filed的值加上指定的增量。增量也可以為負數,相當于對給指定域filed的值value進行減法操作。如果域filed對應的值value不是integer會錯誤提示。 hsetnx key field value 將哈希表key中的域field的值設置為value ,當且僅當域field不存在!
(4)集合。(Set)
- Redis Set與List類似,是一個列表的功能,特殊之處在于Set是可以自動排重的!當需要存儲一個列表數據,又不希望出現重復數據時,Set是一個很好的選擇。
- Redis的Set是String類型的無序集合,他的底層實際是一個value為null的Hash表,添加,刪除,查找復雜度都是O(1)。
命令 基本介紹 sadd key value1 value2 ... 添加一個或多個元素。(會自動去重) smembers key 取出(查詢)所有元素 sismember key value 判斷集合key中是否包含元素value。其中1:有,0:沒有scard key 返回集合中元素的個數 srem key?member
[member1 member2 ...] 移除(刪除)集合key中的一個或多個member元素。若不存在的member元素會被忽略執行。spop key [count] 隨機彈出count個元素。count默認為1。
被彈出的元素會被刪除,返回彈出元素值
srandmember key?[count] 隨機獲取count個元素。count默認為1。
不會刪除集合中的元素。smove?source destination member member元素從集合source移除,并添加到destination 集合中。
若destination 集合中已有該元素,只進行source移除操作。 sinter key [key1 key2 ...] 取多個集合的交集 sinterstore 將多個集合的交集放到一個新的集合中 sunion?key [key1 key2 ...] 取多個集合的并集,且自動去重 sunionstore 將多個集合的并集放到一個新的集合中 sdiff?key [key1 key2 ...] 取多個集合的差集。返回一個集合的全部成員,該集合是所有給定集合之間的差集
(5)有序集合。(ZSet)
redis有序集合zset與普通集合set非常相似,是一個沒有重復元素的字符串集合。 不同之處:有序集合的每個成員都關聯了一個評分(score),這個評分(score)被用來按照從最低分 到最高分的方式排序集合中的成員。 集合的成員是唯一的,但是評分是可以重復的。
- 因為元素是有序的,所以你可以很快的根據評分(score)或者次序(position)來獲取一個范圍的元素。
訪問有序集合中的中間元素也是非常快的,因為你能夠使用有序集合作為一個沒有重復成員你的智能列表。
命令 基本介紹 zadd key
<score1> <member1>
<score2> <member2> ... 1、將一個或多個member元素及其score值加入到有序集 key 當中。2、如果某個member已經是有序集的成員,那么更新這個member的score值,并重新插入這個member元素,來保證該member在正確的位置上。3、score 值可以是整數值或雙精度浮點數。 zrange key start top [withscores]1、返回存儲在有序集合key中的指定范圍的元素。 返回的元素可以認為是按score從最低到最高排列,如果得分相同,將按字典排序。
2、下標參數start和stop都以0為底,則以0表示有序集第一個成員,以1表示有序集第二個成員。3、zrange key 0 -1:可以獲取所有元素。
4、withscores:讓member成員和它的 score 值一并返回
zrevrange keystart stop [withscores] score降序,獲取指定索引范圍的元素。可以使用負數下標,以-1表示最后一個成員, -2表示倒數第二個成員。 zrangebyscore?key min max [withscores] [limit offset count] 1、返回有序集 key 中,所有score值介于min和max之間(包括等于min或max)的成員。有序集成員按score值遞增(從小到大)次序排列。2、可選的limit參數指定返回結果的數量及區間。 zrevrangebyscore 按照score降序,返回指定score范圍內的數據。 zincrby key increment member 為有序集key的成員member的score值加上增量 increment 。可以通過傳遞一個負數值increment ,讓score減去相應的值。 zrem key member
[member1 member2?...] 移除有序集key中的一個或多個成員,不存在的成員將被忽略。 zremrangebyrank key start stop 根據索引范圍刪除元素。 zremrangebyscore key min max 移除有序集key中,所有score值介于min和max之間(包括等于 min或max)的成員。 zcount key min max 返回有序集key中, score值在min和 max之間(默認包括 score值等于min或max)的成員的數量。 zrank key member 1、返回有序集key中成員member的排名。其中有序集成員按score值遞增(從小到大)順序排列。2、排名以 0 為底,也就是說, score 值最小的成員排名為 0 。 zrevrank?key member 1、返回有序集key中成員member的排名。其中有序集成員按 score 值遞減(從大到小)排序。2、排名以0為底,也就是說, score值最大的成員排名為 0 。 zscore key member 返回有序集key中,成員member的score值。