工作當中用到redis上手總結

Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。 它通常被稱爲數據結構服務器,因爲值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。 特點:持久化,數據類型豐富,安全,發佈/訂閱模型

redis支持的五種數據類型

1.String(字符串) string是redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。 string類型是二進制安全的。意思是redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。 string類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。

set(key, value):給數據庫中名稱爲key的string賦予值value

get(key):返回數據庫中名稱爲key的string的value

getset(key, value):給名稱爲key的string賦予上一次的value

mget(key1, key2,…, key N):返回庫中多個string(它們的名稱爲key1,key2…)的value

setnx(key, value):如果不存在名稱爲key的string,則向庫中添加string,名稱爲key,值爲value

setex(key, time, value):向庫中添加string(名稱爲key,值爲value)同時,設定過期時間time

mset(key1, value1, key2, value2,…key N, value N):同時給多個string賦值,名稱爲key i的string賦值value i

msetnx(key1, value1, key2, value2,…key N, value N):如果所有名稱爲key i的string都不存在,則向庫中添加string,名稱          key i賦值爲value i

incr(key):名稱爲key的string增1操作

incrby(key, integer):名稱爲key的string增加integer

decr(key):名稱爲key的string減1操作

decrby(key, integer):名稱爲key的string減少integer

append(key, value):名稱爲key的string的值附加value

substr(key, start, end):返回名稱爲key的string的value的子串

2.Redis hash 是一個鍵值對集合 Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。

hset(key, field, value):向名稱爲key的hash中添加元素field<—>value
hget(key, field):返回名稱爲key的hash中field對應的value
hmget(key, field1, …,field N):返回名稱爲key的hash中field i對應的value
hmset(key, field1, value1,…,field N, value N):向名稱爲key的hash中添加元素field i<—>value i
hincrby(key, field, integer):將名稱爲key的hash中field的value增加integer
hexists(key, field):名稱爲key的hash中是否存在鍵爲field的域
hdel(key, field):刪除名稱爲key的hash中鍵爲field的域
hlen(key):返回名稱爲key的hash中元素個數
hkeys(key):返回名稱爲key的hash中所有鍵
hvals(key):返回名稱爲key的hash中所有鍵對應的value
hgetall(key):返回名稱爲key的hash中所有的鍵(field)及其對應的value

3.List(列表) Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。

 

 

rpush(key, value):在名稱爲key的list尾添加一個值爲value的元素
lpush(key, value):在名稱爲key的list頭添加一個值爲value的 元素
llen(key):返回名稱爲key的list的長度
lrange(key, start, end):返回名稱爲key的list中start至end之間的元素(下標從0開始,下同)
ltrim(key, start, end):截取名稱爲key的list,保留start至end之間的元素
lindex(key, index):返回名稱爲key的list中index位置的元素
lset(key, index, value):給名稱爲key的list中index位置的元素賦值爲value
lrem(key, count, value): 刪除count個名稱爲key的list中值爲value的元素。count爲0,刪除所有值爲value的元素,count>0      從頭至尾刪除count個值爲value的元素,count<0從尾到頭刪除|count|個值爲value的元素。
lpop(key):返回並刪除名稱爲key的list中的首元素
rpop(key):返回並刪除名稱爲key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop 命令的block版本。即當timeout爲0時,若遇到名稱爲key i的list不存在或該list爲空,則命令結束。如果 timeout>0,則遇到上述情況時,等待timeout秒,如果問題沒有解決,則對key i+1開始的list執行pop操作。
brpop(key1, key2,… key N, timeout):rpop的block版本。參考上一命令。
rpoplpush(srckey, dstkey):返回並刪除名稱爲srckey的list的尾元素,並將該元素添加到名稱爲dstkey的list
4.Set(集合) Redis的Set是string類型的無序集合。 集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是O(1)。 

 

sadd(key, member):向名稱爲key的set中添加元素member
srem(key, member) :刪除名稱爲key的set中的元素member
spop(key) :隨機返回並刪除名稱爲key的set中一個元素
smove(srckey, dstkey, member) :將member元素從名稱爲srckey的集合移到名稱爲dstkey的集合
scard(key) :返回名稱爲key的set的基數
sismember(key, member) :測試member是否是名稱爲key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集並將交集保存到dstkey的集合
sunion(key1, key2,…key N) :求並集
sunionstore(dstkey, key1, key2,…key N) :求並集並將並集保存到dstkey的集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集並將差集保存到dstkey的集合
smembers(key) :返回名稱爲key的set的所有元素
srandmember(key) :隨機返回名稱爲key的set的一個元素
5.zset(sorted set:有序集合) Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。 不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。 zset的成員是唯一的,但分數(score)卻可以重複。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章