redis五种数据类型以及应用场景

2020-03-23  本文已影响0人  黑锦虎门

一、redis与memcache的区别

1、redis不仅支持k/v类型的数据,同时还提供了list,set,zset,hash数据结构的存储。

2、redis支持集群化,即master-slave模式的主从复制

3、redis支持数据的持久化,可将内存数据保存在磁盘中,重启的时候可以再次加载进行使用

4、Redis能够替代memcached,让你的缓存从只能存储数据变得能够更新数据,因此你不再需要每次都重新生成数据了。

redis底层使用hash表的方式来存储k/v对,保证可以快速查询到相应的key值

二、Redis各类型的应用

1、string

作为常规的key-value缓存应用。

应用场景:微博数、粉丝数等

:一个键最大能存储512MB,value其实不仅是String,也可以是数字,常用在数字的自加自减

常用方法示例

代码实例

客户端查看结果

客户端查看结果

2、Redis Hash表

redis hash是一个string类型的field和value的映射表,hash特别适用于存储对象(应用对象包含多种属性)

redis hash

常用方法示例

常用命令:hget hset hgetall

hmset user:001 name "李三" age 18 birthday "20010101"

            Key是用户ID,value是一个Map,这个Map的key是成员的属性名,value是属性值,

            这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field), 也就是通过

            key(用户ID) + field(属性标签) 操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并发修改控制的问题。很好的解决了问题。

客户端查看结果

3、List

list列表是简单的字符串列表,按照插入顺序排序(内部实现为LinkedList),可以选择将一个链表插入到头部或尾部。在redis实现为一个双向链表,可以从两边插入、删除数据。应用场景可以有微博的关注列表、粉丝列表、消息列表等。

常用方法示例:

lpush(添加左边元素),rpush,lpop(移除左边第一个元素),rpop,lrange(获取列表片段,LRANGE key start stop)等。

客户端查看结果

4、set

set表示存储的一个元素不重合的集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能。set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。

常用方法示例:

sadd spop     smembers  sunion  sinter

客户端查看结果:

5、zset

相对于Set,Sorted Set多了一个Score作为权重,使集合里面的元素可以按照score排序,注意它是Set,所以它里面的元素也不能重复。可应用与排名和榜单

常用命令示例

    zadd,zrange,zrem,zcard等

客户端查看结果:

上一篇 下一篇

猜你喜欢

热点阅读