• redis 五种数据类型


    前言

      前面学会了单机, 学会了集群, 但是redis咋用啊? 或者说, redis支持哪些数据类型呢?

      常用的有五种: String , Hash, List, Set, zset(SortedSet)

    一、String 

      String 类型, 在前面也是使用过的. 直接来看一下

      

       可以使用del name来删除缓存

    二、List 

    push指令:   

      push分两个, 一个从左边push, 一个从右边push. 但是这个左右, 是对准备push的值而言的. 而不是针对将要push的数组来说的.

      

    pop指令

      pop同样的, 也有两个. 这次是针对list来说的了

      

    三、Hash

      hash与前面的都不同, 这里是 key - field - value

      相当于是, key是一个大类, 对应了一个 map, field就相当于是map的key, value相当于是map的value

      

      hset进行赋值, hget用来获取值. 

         hset name 1 elvin 这么看, 是不是有点像往表里面查数据的感觉, 只不过我的field用的是数值字符串

    hash 有一个很好的用途:

      比如, 我对一张表 t_usr 进行操作, 有一个新增方法, 可以返回一个id, 那么我是否可以将数据进行缓存起来, hset t_usr id 值

      

      那, 查询的时候, 可以先进行缓存的查询, 如果查询不到, 或者查询出来是空, 再去数据库中查询一次, hget t_usr id. 

      用这样的方式, 是不是可以对那些访问量比较大的地方, 进行加速访问.

    那既然使用到了缓存, 就牵涉到一个缓存同步的问题了. 怎么解决呢?

      一个很简单的方式. 在调用删除方法的时候, 可以 hdel t_usr id, 这样, 在下一次查询的时候, 是不是就会去查数据库, 并将查询的结果进行缓存, 就在删除数据的时候, 实现了数据同步.

      同样的, 在修改的时候, 也可以做到数据同步, 不过这次有的选了, 可以选择删除缓存数据, 也可以选择更新缓存数据. 

    四、Set

      set集合中的元素, 是不能重复的, 而且是无顺序的.

      

      这里我将5,1重复写入, 但是很明显, 只保留了一份, List 则不会出现这种情况. 

    五、zset(SortedSet)

       zset 与 set 稍有不同, 不是说可以重复, 而是他是有顺序的. 而且这个顺序是我们自己来设定的.

    zadd新增指令:

      

      从上图看, 最后的顺序, 是根据我们指定的分值来排序的.

    zrem 删除指令:

      

       

    更详细的指令可见:

       Redis常见的5种不同的数据类型详解

  • 相关阅读:
    并发编程的艺术
    Redis字符串实现,SDS与C的区别,空间预分配
    Jvm
    Redis数据结构的实现
    发一篇感谢身边的所有从事it工作的朋友
    BeanFactory 默认的注入实现类DefaultListableBeanFactory
    jsSwitch语句优化
    彻底搞懂 Nginx 的五大应用场景
    Spring Boot 整合 Quartz 轻松实现任务调度!
    js计算两个给定日期之间的天数
  • 原文地址:https://www.cnblogs.com/elvinle/p/8377296.html
Copyright © 2020-2023  润新知