Redis是一个机遇内存的高性能K-V数据库,跟memcached很类似,按照Redis官网所提及每秒可以处理超过10万次读写操作,Redis出色的不仅仅是性能好,而且提供了多种数据结构,单个value最大限制10G(memcached只有1M);
Redis当中有五大数据结构:string、list、set、hash、sorted set(稍后会演示);
02 Redis数据结构String
(使用场景:微博数,粉丝数【常规计数】)
string 是 redis 最基本的数据类型。一个 key 对应一个 value(String不仅仅是字符串,还可以放数字)。
string 是二进制安全的。也就是说 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。
string 类型是 redis 最基本的数据类型,string 类型的值最大能存储 512 MB。
命令 |
解释 |
get |
获取指定key值 |
set |
设置指定key值 |
incr |
将key中存储的数字增一 |
decr |
将key中存储的数字减一 |
mget |
获取一个或多个key的值 |
演示
List
(使用场景:微博关注列表,粉丝列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。我们可以网列表的左边或者右边添加元素。
命令 |
解释 |
lpush |
将一个或者多个值插入列表头部 |
rpush |
将一个或者多个值插入列表尾部 |
lpop |
移出并获取列表的第一个元素 |
rpop |
移除列表的最后一个元素,返回值是移除的元素 |
lrange |
获取列表的最后一个元素,返回值为移除的元素 |
演示
Set
(使用场景:实现共同关注、共同喜好、二度好友)
Set就是一个集合,集合的概念就是一堆不重复值的组合。利用Redis提供的Set数据结构,可以存储一些集合性的数据;
redis的set 是字符串类型的无序集合。集合是通过哈希表实现的,因此添加、删除、查找的复杂度都是 O(1)
命令 |
解释 |
sadd |
向集合中添加一个或多个成员 |
spop |
移除并返回集合中的一个随机元素 |
smembers |
返回集合中的所有成员 |
sunion |
返回给定集合的并集 |
sdiff |
返回第一个集合的差集 |
sinter | 返回第一个集合的交集 |
演示