• Redis


    一、redis数据类型

         1、String

           字符串类型是redis最基础的数据库结构,其他几种都是建立在字符串类型基础上。字符串类型可以是(简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频),但是最大不能超过512M。

         场景:缓存功能:redis 作为缓存层,mysql作为存储层,大部分请求数据从redis中获取,redis支持高并发特性,因此缓存通常可以起到加速读写和降低后端压力的作用。

                  计数器:redis作为计数的工具,可以快速计数及查询缓存的功能,同时数据可以一步落地到其他数据源。比如:视频播放数

                  共享session:出于负载均衡的考虑,分布式服务会将用户信息的访问均衡到不同服务器上,用户刷新一次访问可能会需要重新登录,为了避免这个问题,使用redis将                                       用户session集中管理,在这种模式下只要保证redis的高可用和扩展性,每次用户刷新或查询登录信息都从redis中集中获取。

                  限速:出于安全考虑,用户进行登录时让用户输入手机验证码,为了保证短信接口不被频繁访问,限制用户每分钟获取验证码的频率。

        2、Hash

            在redis中哈希类型,如 value={{field1,value1},......{fieldN,valueN}} ,hash数据类型在存储上述类型数据时具有比string类型更灵活、更快的优势,具体的说,使用string类型存储,必然需要转换和解析json格式的字符串,即便不需要转换,在内存开销方面,hash占优势

            场景:hash类型适合存储对象类数据,相对于string中介绍的把对象转化为json字符串存储,hash的结构可以任意添加或者删除字段名,更高效灵活。

       3、List

           list是按照插入顺序排序的字符串链表,可以在头部和尾部插入新的元素(双向链表的实现,两端添加元素的时间复杂度为O(1))。插入元素时,如果key不存在,redis会为该key创建一个新的链表,如果链表中所有的元素都被移除,该key也会被从redis中移除。在redis命令中用lpush在list头部插入元素,用rpop命令在list尾取出数据。 

          场景:消息队列

      4、Set

          集合类型用来保存多个字符串的元素,但是和列表不同的是集合不允许有重复的元素,并且集合中的元素是无序的,不能通过索引下标获取元素,redis除了支持集合内增删改查,同时还支持多个集合交集、并集、差集,并合理的使用好集合类型,能在实际开发中解决很多实际问题。

         场景:集合类型比较典型的使用场景,就是用户同一类感兴趣的标签,这些标签可以得到同一标签的用户。

     5、zset

         有序集合保留了集合不能有重复元素的特性,不同的是,有序集合的元素是可以排序的,但是它和列表的使用索引下标作为排序不同的是,它给每个元素设置一个分数,作为排序的依据。(有序集合中的元素不可以重复,但是score可以重复)

         场景:有序集合经典使用场景,如视频网站对视频做排行榜,榜单根据多维度:时间,播放量,收藏等等。

  • 相关阅读:
    webpack4.x 入门一篇足矣
    面试精选之Promise
    六月前端知识集锦(每月不可错过的文章集锦)
    SpringBoot整合MyBatis与MySql8.0
    tomcat报错:This is very likely to create a memory leak问题解决
    配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解
    不用FTP,直接Windows与Linux下互传文件
    SpringBoot项目单元测试
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    linux下重启weblogic(关闭和启动)
  • 原文地址:https://www.cnblogs.com/mhSui/p/11714346.html
Copyright © 2020-2023  润新知