当前位置: 首页 > news >正文

Spring Data Redis

文章目录

  • Redis各种Java客户端
  • Spring Data Redis
    • 使用方式
    • 操作字符串类型的数据
    • 操作哈希类型数据
    • 列表类型
    • 集合类型
    • 有序集合类型
    • 通用类型

Redis各种Java客户端

Java中如何操作redis,这里主讲IDEA中的框架Spring Data Redis来操作redis
Jedis是官方推出的,对应指令和操作redis相同
Spring Data Redis其实就是对Jedis和Lettuce进行一个高度封装,使用简单
在这里插入图片描述

Spring Data Redis

使用方式

在这里插入图片描述
在这里插入图片描述
依赖我已经导入好了
设置一下配置文件
在这里插入图片描述
写一下配置类
在这里插入图片描述

@Configuration
@Slf4j
public class RedisConfiguration {@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){log.info("开始创建redis模板对象...");RedisTemplate redisTemplate = new RedisTemplate();//设置redis的连接工厂对象//redisConnectionFactory是redis-starter依赖帮我们创建放入IOC容器中,不用自己创建redisTemplate.setConnectionFactory(redisConnectionFactory);//设置redis key 序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return  redisTemplate;}
}

然后我们就创一个测试类,测试对应bean是否创建成功(自己测)
学习一下如果使用该框架操作redis
在这里插入图片描述
五种不同类型的对象,用来操作不同类型的key-value

		ValueOperations valueOperations = redisTemplate.opsForValue();HashOperations hashOperations = redisTemplate.opsForHash();ListOperations listOperations = redisTemplate.opsForList();SetOperations setOperations = redisTemplate.opsForSet();ZSetOperations zSetOperations = redisTemplate.opsForZSet();

操作字符串类型的数据

注意:redis和java中的字符串是不一样的,其实我们传什么对象,都会被序列化器序列化字符串存储到redis中
redisTemplate增添序列化器是为了防止乱码,如果不添加会有默认的序列化器,那个就因为序列化器不同,它显出来也不同,也不是说是乱码,底层算法不一样而已

    /*** 操作字符串类型的数据*/@Testpublic void testString(){//set  get setex stenxValueOperations valueOperations = redisTemplate.opsForValue();//set(key,value) 正常设置valueOperations.set("111","000");//get 获得对应可以的valueObject o = valueOperations.get("111");System.out.println(o);//setex seconds 限时键值对valueOperations.set("110","001",101, TimeUnit.SECONDS);//setnx 只有不存在才可以设置valueOperations.setIfAbsent("lock","1");}
}

setex对应的方法
timeout代表对应时间数值,unit代表时间单位,分/秒等等
在这里插入图片描述

测试一下
控制台是正常的
在这里插入图片描述
value不是我们的000
因为redis对java来源的数据进行序列化就变成对应的样子了
为什么key不是乱码?
因为我们之前设置了key的序列化器

别问为什么没有110的key,因为我只设置了10s没截到

//设置redis key 序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());

在这里插入图片描述
setex显示
在这里插入图片描述

操作哈希类型数据

hset 对应put
hget对应get
hdel对应delete
hkeys对应keys
hvals对应values

在这里插入图片描述

列表类型

lpush多个插入对应leftPushAll,单个插入对应leftPush
lrange对应range(返回对应索引的值所形成的集合)
rpop对应rightPop 弹出最低的并返回
llen对应size 就长度

在这里插入图片描述

集合类型

add对应sadd 添加值
smembers对应members 获取对应key下的集合value
size 获取长度
intersect 获取集合交集
union 获取集合并集
remove 删除集合中的元素

在这里插入图片描述

有序集合类型

add对应zadd 指定分数和value
range对应zrange 查询对应索引0-1代表所有元素
incrementScore 对应 zincrby 给对应key的value加指定点的分
remove对应 zrem 删除集合中的元素

在这里插入图片描述

通用类型

通用命令就是直接操作redisTemplate
keys对应keys(pattern) *代表全部
exists对应hasKey(key)
type对应type(key)
del对应delete(key)

在这里插入图片描述

http://www.lryc.cn/news/142892.html

相关文章:

  • 软件测试的方法有哪些?
  • Python Qt学习(二)Qt Designer
  • 我的数据上传类操作(以webDAV为例)
  • move与函数指针的简单使用
  • 第五章 树与二叉树 二、二叉树的定义和常考考点
  • 算法笔记/USACO Guide GOLD金组DP 1. Introduction to DP
  • 天锐绿盾安全U盘系统
  • 灰色预测模型
  • Yolo系列-yolov1
  • 单片机TVS/ESD二极管防护
  • TCP协议的重点知识点
  • 大数据——一文熟悉HBase
  • 如何有效进行RLHF的数据标注?
  • 2023年8月22日OpenAI推出了革命性更新:ChatGPT-3.5 Turbo微调和API更新,为您的业务量身打造AI模型
  • windows配置wsl,Unbuntu启动GPU加速
  • Postman测WebSocket接口
  • 【内网穿透】搭建我的世界Java版服务器,公网远程联机
  • Unable to Locate package python2| Linux Ubuntu系统下python2的安装
  • 从上帝视角俯瞰vue2路由(简单易懂)
  • STL-空间配置器的了解
  • 哔哩哔哩 B站 bilibili 视频视频音效调节 清澈人声
  • 下一代存储解决方案:湖仓一体
  • IntelliJ IDEA 2023.2.1 修复版本日志
  • 算法通关村十三关 | 数组字符串加法专题
  • k8s--基本概念理解
  • 流媒体开发千问【持续更新】
  • 全球各国官方语言大盘点,英语不得不学哇。。。
  • 【mq】如何保证消息可靠性
  • 疲劳检测-闭眼检测(详细代码教程)
  • 大数据日常运维命令