String操做簡單概括:html
1.set get mset mget 設置和獲取值,單個與批量。redis
2.incr decr incrby decrby 原子加減操做,帶有by的能夠指定原子加減的數值。數據結構
3.setnx msetnx 單個和批量的原子設置值操做。併發
4.getset 原子獲取設置app
5.strlen append getrange setrange 截取或者設置部分字符串。高併發
6.getbit setbit 二進制偏移量的方式獲取和設置值大數據
7.setex 原子設置值而且設置有效時間。lua
上述命令中,若是涉及的的原子操做,一看到原子就能夠想到事務的一個特色就是原子性。因此,原子性操做的命令能夠用於併發的時候使用。.net
hashes的主要操做基本與map相似,概括記憶爲:線程
1. hset hget hdel hgetall 用於操做的設置,獲取,刪除,獲取所有的操做。
2.hexists hlen 判斷field是否存在以及獲取field的數量。
3.hsetnx不存在的時候才進行設置
4.hincrby 原子加操做
5.hkeys hvalues 獲取全部key和全部value
6.hmget hmset 批量獲取,設置
hashes適用場景,key-value的存儲方式的時候均可以用此種數據結構,也就是基本在你的數據類型中,能夠須要用map存儲的均可以用這個數據類型存儲在redis中。
List的主要操做基本與鏈表相似,概括記憶爲:
lpush rpush lpop rpop:從頭部尾部插入數據,彈出數據。
lpushx rpushx 插入數據的時候判斷key是否存在,若是不存在就不進行任何操做。
blpop brpop 阻塞的進行彈出操做。
lrange 獲取數據
llen 判斷數據量
lset lindex linsert ltrim lrm 對於鏈表的簡單操做,設置啊,插入啊,索引啊,刪除啊等操做。
rpoplpush brpoplpush 從某list彈出數據而且push到另外的list。b..只是阻塞式的操做。
既然是鏈表式的存儲操做,就必定會具備鏈表的特性,插入刪除較快,索引較慢,因此此數據結構通常用於有序的數據存儲,以及能夠用於消息隊列。
Set的主要操做基本與鏈表相似,概括記憶爲:
1.sadd spop srandmember srem smove 都是set的實際操做命令,好比添加啊,刪除彈出,不刪除彈出,刪除,移動之類的。
2.scard set中的元素個數
3.sdiff sinter sunion 取差集,交集,並集。
4.sdiffstore sinterstore sunionstore 取差,交,並之後放到新的set
set就是一個無序的集合,操做仍是比較方便的。實際應用場景中,好比記錄一個鏈接被用戶點擊數的時候均可以使用。
SortedSet的主要操做基本與鏈表相似,概括記憶爲:
1.zadd zrem zremrangebyrank zramrangebyscore 有序集合的添加與刪除操做,刪除分爲三種方式,單個和按照區間刪除。
2.zcard zcount 集合中的元素數量,以及集合區間內的元素數量。
3.zrange zrevrange zrank zrevrank zrangebyscore zrevrangebyscore 按照區間返回數據,rev爲降序的方式返回。
SortedSet就是一個有序的集合,實際應用場景中,若是有分頁的操做,或者按照區間統計的時候可使用此數據結構。
Bitmaps,能夠計算某數據是否已存在。redis的key和value自己就支持二進制的存儲方式,因此bitmaps只是一個獨特的擴展。由於是面向字節操做,因此他的最大長度就是512M,最適合設置成2^32個不一樣字節。通常的使用場景都是單一的統計,效率較高。好比簽到啊,好比點擊啊。
HyperLoglog,能夠記錄一共存在多少不一樣數據的總量。
一樣是用於計算,HyperLoglog在適用場景方面與Bitmaps方面有什麼不一樣呢。我我的的理解是,Bitmaps更適合用於驗證的大數據,好比簽到,
記錄某用戶是否是當天進行了簽到,簽到了多少天的時候。也就是說,你不光須要記錄數據,還須要對數據進行驗證的時候使用Bitmaps。
HyperLoglog則用於只記錄的時候,好比訪問的uv統計。
redis的持久化方式有兩種,分別是:RDB和AOF。
RDB簡單的說就是俗稱的快照。AOF呢基本就是bin log的模式。
pub/sub 實現中是消息發送者將消息發送給頻道,而後訂閱的頻道的客戶收到響應的消息。訂閱能夠進行精確訂閱,也能夠經過表達式進行訂閱。
注意的是,subscribe的時候線程是會被阻塞的。
使用Lua腳本,經過EVAL 命令調用
http://www.cnblogs.com/ysuzhaixuefei/p/4057458.html
redis+lua解決搶紅包高併發的問題 http://blog.csdn.net/hengyunabc/article/details/19433779/
http://www.cnblogs.com/simibaba/category/1021702.html