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、地理位置的简单记录
暂无。