Redis 字符串(String)
Redis 字符串数据类型的相关命令用于管理 redis 字符串值
set key value | 设置指定 key 的值 |
get key | 获取指定 key 的值 |
strlen key | 返回 key 所储存的字符串值的长度 |
incr key | 将 key 中储存的数字值增一(自增长) |
append key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾 |
Redis 哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
hmset key value | 设置指定key的值(values也是键值对 相等于 java的map对象) |
hget key field | 获取存储在哈希表中指定字段的值 |
hgetall key | 获取在哈希表中指定 key 的所有字段和值 |
hdel key field2 [field2] | 删除一个或多个哈希表字段 |
hkeys key | 获取指定哈希表中的字段 |
hlen key | 获取哈希表中字段的数量 |
Redis 列表(List)
在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素在插入时,如果该键并不存在,Redis将为该键创建一个新的链表
从元素插入和删除的效率视角来看,如果我们是在链表的两头插入或删除元素,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在常量时间内完成。然而需要说明的是,如果元素插入或删除操作是作用于链表中间,那将会是非常低效的。相信对于有良好数据结构基础的开发者而言,这一点并不难理解。
一个列表最多可以包含 232- 1 个元素 (4294967295, 每个列表超过40亿个元素)
lpush key value | 把值插入到链表头部 |
rpush key value | 把值插入到链表尾部 |
lpop key | 返回并删除链表头部元素 |
rpop key | 返回并删除链表尾部元素 |
lrange key start stop | 查询列表指定下标范围(start stop)内的元素() |
lrem key count value | 从链表中删除value值,(从查询到的第一个开始删起)删除指定的 count 个 value 后结束 count > 0 从表头删除 count < 0 从表尾删除 count=0 全部删除 |
ltrim key start stop | 对一个列表进行修剪(trim),只保留列表指定下标区间(start stop (不包含stop))内的元素,不 在指定区间之内的元素都将被删除 |
lindex key index | 返回index索引上的值 |
llen key | 计算链表的元素个数 |
Redis 集合(Set)
Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
sadd key member1 [member2] | 向集合添加一个或多个成员 |
srem key member1 [member2] | 删除集合中一个或多个成员 |
scard key | 获取集合的成员数(可以当成长度) |
sdiffkey1 [key2] | 返回给定所有集合的差集 |
sunion key1 [key2] | 返回所有给定集合的并集 |
sinter key1 [key2] | 返回给定所有集合的交集 |
sismember key member | 判断 member 元素是否是集合 key 的成员 |
smembers key | 返回集合中的所有成员 |