美文网首页
redis五种数据类型以及应用场景

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

作者: 黑锦虎门 | 来源:发表于2020-03-23 19:55 被阅读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等

    客户端查看结果:

    相关文章

      网友评论

          本文标题:redis五种数据类型以及应用场景

          本文链接:https://www.haomeiwen.com/subject/lmzwyhtx.html