Redis简介
Redis是一个速度非常快的非关系型数据库,它可以存储键(key)和5种不同类型的值(value)之间的映射。
5种不同类型的值的结构
1.String类型(字符串类型)
String类型存储的数据类型可以是字符串,整数或者浮点数。该结构可以执行的操作:对整数和浮点数执行自增或自减操作。
字符串拥有一些与其他键值存储相似的命令:
(1)GET 获取存储在指定key中的value
(2)SET 设置指定key中的value
(3)DEL 删除指定key
话不多说,上代码,打开redis-cli客户端,依次尝试3个命令,体会作用。
2.List类型(列表类型)
List类型的结构和数据结构中的链表类似。
List类型基本命令:
(1)RPUSH
将给定值推入列表的右端
(2)LRANGE
获取列表在指定两个索引之间的值
(3)LINDEX
根据指定索引获取该位置上的值
(4)LPOP
从列表左端弹出值,并返回弹出的值
尝试4个命令,体会作用。
3.Set类型(集合类型)
Set类型和List类型结构的区别,Set类型利用散列表的特点,确保存储在Set中的字符串不相同。
Set类型基本命令:
(1)SADD
将给定元素加入到集合中
(2)SMEMBERS
返回集合中包含的所有元素
(3)SISMEMBER
判断指定元素是否在集合中
(4)SREM
如果指定元素存在于集合中,那么移除这个元素
尝试4个命令。
4.Hash类型(散列类型)
Redis的散列可以存储多个键值对之间的映射。
注意:Redis中的Hash类型和java中的Hashmap一样,当Redis中的Hash表中存储的数据所占总空间的比例达到或超过负载因子的大小时,Redis会对该Hash表进行rehash操作,并且整个rehash过程是分步完成的,不是一次性完成的。
Hash类型基本命令:
(1)HSET
设定键值对的键和值
(2)HGET
获取指定散列键的值
(3)HGETALL
获取散列包含的所有键值对
(4)HDEL
如果指定键存在于散列中,那么移除这个键
5.Zset类型(有序集合)
有序集合和散列一样,都可以用来存储键值对,不过有序集合中键值对的顺序是根据用户设置的score值排定的。在Redis中zset是通过跳跃表实现的,在大部分情况下,跳跃表的查找性能和平衡二叉树媲美,但跳跃表的实现比平衡二叉树简单的多。
(1)ZADD
将给定分值的成员添加到有序集合里面
(2)ZRANGE
根据给定的索引值取出集合中对应的元素
(3)ZRANGEBYSCORE
根据给定的分值范围取出所有分值在此范围内的元素
(4)ZREM
如果给定成员存在于集合中,那么移除这个元素