Redis具有的特點以及優勢
- Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
- Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
- Redis支持數據的備份,即master-slave模式的數據備份。
Redis的幾種數據類型
- String(字符串):使用的最多和json一起使用。
- List(字符串列表):按照插入順序排序的字符串鏈表,和數據結構中的普通鏈表一樣。
- Hash(字符串列表) :鏈表結構 ,適合用於存儲對象。
- Set(字符串集合) :唯一性,用於保證數據的唯一性。
- Sorted set(有序字符串集合): 用於網站排名 競價排名,變化不能太快。
string類型命令
- 設置值:設置key持有指定的字符串value 如果key存在就會進行覆蓋操作。
set key value
- 獲取值:獲取key的value 如果key不是String類型 將返回錯誤的信息。
get key
- 先獲取key的值 然後再設置key的值。
Getset key value
- 刪除:刪除指定的key(通用性命令)
Del key
- 數值增加:將指定的key的value原子性遞增一。
Incr key
- 數值減少:將指定的key的value原子性遞減一。
decr key
- 將指定的key的value原子性的value增加num。
擴展命令:
incrby key num
- 將指定的key的value原子性的value減少num。
decr key num
- 拼接字符串如果該key存在 則再原有的value後追加該值。
append key value
Hash類型命令
- 設置值:爲指定的key設定field/value對(鍵值對)。
hset key field value
- 獲取值:返回指定的key的field的value值。
hget key field
- 設置key的多個field/value。
hmset key field value field2 value2
- 獲取key中的多個field的value值。
hmget key field field2
- 獲取key中的field-value對(鍵值對)。
hgetall key
- 刪除:可以刪除一個或者多個field字段,返回值是被刪除的字段。
hdel key field ....
- 刪除整個hash列表。
del key
- 增加數字:設置key中的field增減num 。
hincrby key field num
- 判斷值的field是否存在。
hexists key field
- 獲取key所包含field的數量。
hlen key
- 獲取所有的key
hkeys key
- 獲取所有的field的value值。
hvals key
List類型命令
兩端添加
- 在指定的key所關聯的list的頭部插入所有的values,插入成功,返回元素的個數。
lpush key values values1 values2
- 在list 的尾部插入需要添加的values元素,插入成功返回插入的個數。
rpush key values value1 value2
兩端彈出
- 返回並彈出指定的key關聯鏈表中的第一個元素,即頭部元素,如果該key不存在,返回nil;若key存在,則返回鏈表的頭號元素。
lpop key
- 返回並彈出指定key關聯列表中的第一個元素,即尾部元素,如果該key不存在,返回nil;若key存在,則返回鏈表的頭號元素。
rpop key
- 獲取鏈表中從start到end元素的值,start,end從0開始,也可以是負數,若爲-1則表示鏈表尾部的元素,-2則表示倒數第二個數。
lrange key start end
其他命令
- 獲取列表中元素的個數:返回指定key關聯鏈表中元素的數量。
llen key
- 僅當參數中只當的key存在時,向關聯的list鏈表中的頭部插入value。
lpushx key value
- 僅當參數中只當的key存在時,向關聯的list鏈表中的尾部插入value。
rpush key value
4。 刪除key中指定的value的元素。
lrem key count value
- 設置鏈表中index的索引的值爲value (執行的替換的操作),0代表鏈表的頭元素,-1代表鏈表的爲尾元素。如果index的索引不存在則拋出異常。
lset key index value
- 在pivot元素前或者原屬後插入value這個元素。
linsert key before(以前)||after(以後) pivot value
- 將鏈表中的的尾部元素彈出並添加到頭部。
rpoplpush resouce distination
Set類型命令
添加
向set集合中添加數據,如果該key的值存在就不會重複添加。
sadd key values values1 values2
刪除
刪除set中只當的成員,刪除的成員可以是多個。
srem key members members1 members1
獲取
- 獲取set中所有的成員。
smembers key
- 判斷參數中指定的成員是否存在,該set中,1表示存在,0
表示不存在。
sismember key member
其他命令
- 返回key1和key中相差的成員(對方沒有的就獲取出來構成的集合),而且與key的順序有關,即返回差集。
sdiff key1 key2
- 返回key1 和key2都有的成員(雙方都有的就獲取出來構成的集合),即返回交集。
sinter key1 key2
- 返回key1 和key2和key3都有的成員,相同的成員會進行覆蓋的效果,即返回並集。
sunion key1 key2 key3
- 獲取set集合中成員的數量。
scard key
- 隨機返回set中的一個成員。
srandmember key
- 將key1和key2相差的成員存儲在destination上。
sddiffstore destination key1 key2
- 將返回的交集存儲在destination上key1
sinterstore destination key1 key2
- 將返回的並集存儲在destination上。
sunionstore destination key1 key2
Sortted-set類型命令
- 添加元素:將所有的成員以及該成員的分數存放到sortted-set中,如果該元素已經存在則會用新的分數替換原來的分數,返回值時加入到集合中的個數,不包含之前存在的元素。((score)分數可以重複,member不可以重複)。
zadd key score member score2 member2
- 查詢所所有的信息。
zrange key start end [withscores(是否攜帶參數)]
- 返回值指定的分數。
zscore key member
- 獲取集合中所有的成員數量。
zcard key
- 獲取集合中索引爲statr-end之間的成員 withscores可選參數。
zrem key start end [withscores(是否攜帶參數)]
- 按照元素的分數從小到大返回索引。(從start到 end之間的所有yuans)。
zrevange key start end[withscores(是否攜帶參數)]
- 按照排名範圍刪除元素。
zremrangebyrank key start end
- 按照分數範圍刪除元素。
zremrangebyscore key min max
- 返回分數在[min,max]的成員按照分數從低到高排序, [withscores(是否攜帶參數)]:顯示分數,[limit offset count]:offset 表明從索引到offset的元素開始返回 count:返回的成員個數。
zarangebyscore key min max [withscores(是否攜帶參數)] [limit offser count]
- 設置指定的成員的增加的分數,返回值是增加的分數。
zincrby key increment member
- 獲取分數在min和max之間的成員。
zcount key min max
- 返回成員在集合中的排名(從小到大)。
zrank key member
- 返回成員在集合中的排名(從大到小)。
zrevrank key member
ps:[如果存在錯誤歡迎指出!]