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种不同的数据类型详解

posted @ 2018-01-29 20:18  Sniper_ZL  阅读(370)  评论(0编辑  收藏  举报