1、批量刪除鍵
Redis的DEL不支持通配符,可是能夠結合Linux的管道和xargs命令本身實現刪除全部符合規則的鍵,好比刪除全部符合「test:」開頭的鍵,能夠執行:redis
redis-cli KEYS "test:*" | xargs redis-cli DEL
2、建立鍵的規範
Redis對於鍵的名稱並無強制的要求,比較好的實踐是「對象類型:對象ID:對象屬性",例如"user:1:friends",對於符合單詞推薦用"."分割。bash
爲了節約存儲空間,也可使用"u:1:f"來表示"user:1:friends",可是這部分的節約不如可讀性重要。數據結構
3、String類型的簡單記錄
通常場景:spa
- 自增能夠作計數器;
- 生成自增ID(不經常使用);
- 存儲數據;
不經常使用的功能還有:code
- 增長/減小指定的整數/浮點數;
- 向字符串尾部添加內容;
- 獲取字符串長度;
- 一次設置/獲取多個鍵(MSET/MGET);
- 位操做;
4、Hash類型的簡單記錄
除了Hash,Redis其餘的數據結構還不支持數據類型嵌套。對象
通常場景:排序
- 存儲一個對象,itemKey爲屬性名,itemValue爲屬性值;
- 將多個計數器記錄在一個Hash中;
不經常使用的功能:索引
- 只獲取itemKey或者itemValue(HKEYS);
- 獲取字段數量(HLEN);
5、List類型的簡單記錄;
List內部使用雙向鏈表實現的。雙端添加元素的時間複雜度是O(1)。ip
通常場景:字符串
不經常使用的功能:
- 得到/設置指定索引位置的元素值(LINDEX/LSET);
- 裁剪成指定判斷(LTRIM);
- 向列表中插入元素(LINSERT);
- 列表轉移,從右邊彈出寫入左邊(RPOPLPUSH);
6、Set類型的簡單記錄
無序集合,能保存2^32-1個字符串。集合內部使用散列表實現,操做的時間複雜度是O(1)。多個集合之間能夠求並集,交集,差集。
通常場景:
不經常使用的功能:
- 得到集合中元素的個數(SCARD);
- 進行集合運算並將結果存儲(SDIFFSTORE/SINTERSTORE/SUNIONSTORE);
- 隨機得到集合中的元素(SRANDMEMBER);
- 從集合中彈出一個元素(SPOP);
7、ZSet類型的簡單記錄
有序集合是使用散列表和跳躍表(Skip list)實現的,讀取的時間複雜度是O(log(N))。 範圍讀取的時間複雜度是O(log n+m)。n是集合的基數,m是返回的元素數量。
通常場景:
不經常使用的功能:
- 獲取元素個數(ZCARD) ;
- 獲取指定分數範圍內的元素個數(ZCOUNT);
- 刪除一個或多個元素(ZREM);
- 按排名範圍刪除元素(ZREMRANGEBYRANK);
- 按分數範圍刪除元素(ZREMRANGEBYSCORE);
- 得到元素的排名(ZRANK/ZREVRANK);
- 計算有序集合的交集(ZINTERSTORE);
8、地理位置的簡單記錄
暫無。