Redis存在集合类型:List(列表),Set(集合),SortSet(有序集合)
List
在redis中List是一个双向联表,既可以当队列使用,也可以当栈使用。
- 向集合中添加值(无需创建,添加时如果没有该键,自动创建) l/rpush key string ( l为left从链表左侧添加 r为右侧)
- 删除集合中两端的值 l/rpop key( l为删除左侧,r为删除右侧)
- 查看list中值的个数(若key不是列表则报错) llen key
- 查看集合在范围内的值(相当于在范围内遍历列表) lrange key start end
- 截取范围内的值,其他删除 ltrim key start end
- 通过索引获取值 lindex key index
- 通过索引设置值 lset key index value
- 在某个值前后插入 linsert key before|after pivot value
Set
Set是String的无序集合(用hash表实现的),不能存在相同的值,Set集合对与集合的交,差,并提供了很好的支持。
- 向集合中添加元素(无需创建,添加时如果没有该键,自动创建) sadd key value (元素重复报错)
- 移除集合中给定的value srem key value
- 查看集合中元素(无序) smembers key
- 将给定的元素从一个集合移到另一个集合中 smove source destination member
- 查看集合中的元素个数 scard key
- 给多个集合取交集 sinter key1 key2.....
- 给多个集合取交集并将结果存在destination中 sinterstore key1 key2 .....
- 给多个集合取并集 sunion key1 key2..
- 给多个集合取并集并将结果存在destination中 sunionstore key1 key2 .....
- 给多个集合取差集 sdiff key1 key2....
- 给多个集合取差集并将结果存在destination中 sdiffstore key1 key2....
- 查看一个元素是否在集合中 sismember key member
Sorted Set
Sorted Set与set一样,不过是有序的,每个set中的值都会对应一个score的值,正是通过score来排序。
- 添加元素到集合,元素存在则更新socre zadd key score member
- 查看范围内的元素(从小到大) zrange key start end
- 同上,不过从大到小 zrevrange key start end
- 删除集合中指定的元素 zrem key member
- 查看集合中元素的个数 zcard key
- 返回值对应的socre zscore key member
- 给值增长指定幅度 zincrby key increment member
- 返回指定元素在集合中的排名(从小到大) zrank key member
- 同上,不过是从大到小排 zrevrank key member
Hash
redis中hash特别适合存储对象,每个hash可以存储40对亿键值对
- 创建hash并添加key-value hmset key filed value.....
- 查看hash中所有键值对 hgetall key
- 查看hash中固定的键值对 hget key filed
- 通过key删除hash中的键值对 hdel key filed
- 查看hash中某一键值对是否存在 hexists key filed
- 查看hash中所有的键 hkeys key
- 查看hash中键的个数 hlen key
- 获取所有给定字段的值 hmget key filed .....
- 修改字段对应的值 hset key filed value
- 同时修改多个字段对应的值 hmset key filed value ....
- 获取hash表中所有值 hvals key
- 添加键值对 hsetnx key filed value
- 给指定的整数字段加上指定的增量 hincrby key filed increment
- 给指定的浮点数字段加上指定的增量 hincrbyfloat key filed increment