Redis常见类型

    • 常用类型
      • String字符串类型
      • Hash字典类型
      • List列表类型
      • Set集合类型
      • ZSet有序集合类型
    • Java程序操作Redis类型
      • 代码操作Redis

常用类型

String字符串类型

使用方式:
在这里插入图片描述

使用场景:
在这里插入图片描述

Hash字典类型

字典类型(Hash) 又被成为散列类型或者是哈希表类型,它是将一个键值(key) 和一个特殊的“哈希表”关联起来,这个“哈希表”表包含两列数据: 字段和值,它就相当于 Java 中的Map<String,Map<String,String>> 结构。套娃是吧!
在这里插入图片描述
底层实现:
在这里插入图片描述

使用场景:
在这里插入图片描述

List列表类型

列表类型(list)是一个使用链表结构存储的有序结构,它的元素插入会按照先后顺序存储到链表结构中,因此它的元素操作(插入和删除)时间复杂度为 O(1),但它的查询时间复杂度为 O(n)
使用方式:
在这里插入图片描述

使用场景:
在这里插入图片描述

Set集合类型

list是可以先进先出;可以重复;set不可以重复;如果存的重复就合并数据;但是是无序的。
在这里插入图片描述

使用场景:
在这里插入图片描述

ZSet有序集合类型

有序集合Sorted Set也称为ZSet;因为底层使用压缩表(ziplist)和跳跃表(skiplist)实现。
压缩列表 (ziplist) 本质上就是个字节数组是Redis为了节约内存而设计的一种线性数据结构,可以包含任意多个元素,每个元素可以是一个字节数组或一个整数。元素少的时候或者元素多但是比较短小;即数据比较少就使用压缩包;数据多就升级跳跃表。

有序集合类型(Sorted Set) 相比于集合类型多了一个排序属性 score (分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。有序集合的存储元素值也是不能重复的,但分值是可以重复的。
在这里插入图片描述

使用场景:
学生成绩排名;粉丝列表;根据关注的先后时间排序
在这里插入图片描述

Java程序操作Redis类型

代码操作Redis

1:搞定配置后

2:注入RedisTemplate对象; 这个对象是Java程序和Redis交互工具;提供很多操作RedisAPI。直接通过这些API去操作Redis; 不用使用命令
(注意:如果是专业版idea;@Autowired会提示报错;但是不影响效果)

3:常见类型操作
在这里插入图片描述
通过这些对象的方法就能实现真正操作Redis

具体代码:

@RestController
public class RedisController {@Resourceprivate RedisTemplate redisTemplate;@RequestMapping("/save")public String save() {redisTemplate.opsForValue().set("userinfo", "zhangsan");//默认是没有设置过期时间;负1 ;           //redisTemplate.opsForValue().set("userinfo", "zhangsan",1000 , TimeUnit.MILLISECONDS));                                       return "ok";//TimeUnit.DAYS         日的工具类  //TimeUnit.HOURS        时的工具类  //TimeUnit.MINUTES      分的工具类  //TimeUnit.SECONDS      秒的工具类  //TimeUnit.MILLISECONDS 毫秒的工具类      }@RequestMapping("/get")public Object get() {return redisTemplate.opsForValue().get("userinfo");}//操作哈希@RequestMapping("/save2")public String save2() {redisTemplate.opsForHash().put("myhash", "username", "lisi");return "ok";}@RequestMapping("/get2")public Object get2() {return redisTemplate.opsForHash().get("myhash", "username"); // lish}}

执行:我们现在去浏览器输入这个url;触发这些执行
在这里插入图片描述
效果:发现Redis确实有点东西
在这里插入图片描述