Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
hash类型常用指令 hmset key value 设置指定key的值(values也是键值对 相等于 java的map对象) hget key field 获取存储在哈希表中指定字段的值 hgetall key 获取在哈希表中指定 key 的所有字段和值 hdel key field2 [field2] 删除一个或多个哈希表字段 hkeys key 获取指定哈希表中的字段 hlen key 获取哈希表中字段的数量在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是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
Set数据类型常用指令 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 返回集合中的所有成员