Redis —— jedis,SpringBoot整合redis
2022/2/6 19:14:05
本文主要是介绍Redis —— jedis,SpringBoot整合redis,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Jedis
使用java来操作Redis
Jedis是Redis官方推荐的连接开发工具,使用java操作Redis中间件,如果要使用java操作redis,那么一定要对redis十分的熟悉
使用Jedis
1.在pom.xml中导入对应的依赖
<!-- jedis依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis<artifactId> <version>3.2.0</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson<artifactId> <version>1.2.62</version> </dependency>
2.编码测试
连接数据库-操作命令-断开连接
public class Test( public static void main(String[] args){ //new一个jedis对象 Jedis jedis = new Jedis("127.0.0.1",6379); //第一个参数是连接redis的地址;第二个参数是ip端口号 //jedis所有的方法就是redis中命令 //测试是否连接成功,返回PONG为连接成功 System.out.println(jedis.ping()); //开启事务 Transaction multi = jedis.multi(); //执行命令 try{ multi.set("k1",v1); multi.set("k2",v2); multi.exec();//没有出现异常,执行事务 }catch(Exception e){ multi.discard();//出现异常,放弃事务 e.printStackTrace(); }finally{ //关闭连接 jedis.close(); } } )
SpringBoot整合
SpringBoot操作数据:spring-data jpa jdbc redis;
创建SpringBoot项目时在NoSQL中选中spring data redis即可
说明:在SpringBoot2.x之后,原来使用的jedis被替换为了lettuce
jedis:采用直连,多个线程操作的话,是不安全的,如果想要避免不安全的,谁用jedis pool连接池,更像BIO模式
lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况,可以减少线程数据了,更像NIO模式
自动配置类都会绑定一个properties配置文件,redis的自动配置类RedisAutoConfiguration,自动配置类通过注解EnableConfigurationProperties(RedisProperties.class)绑定了RedisProperties,在RedisProperties类中可以看到需要配置的项
整合步骤:
- 导入依赖
- 配置redis
- 测试连接
@Autowired private RedisTemplate redisTemplate; @Test void contextLoads(){ //操作字符串String redisTemplate.opsForValue(); //操作列表List redisTemplate.opsForList(); //获取连接 RedisConnection connection = redisTemplate.getConnectionFactory.getConnection(); //清空当前库 connection.flushDb(); }
自定义RedisTemplate
@Configuration public class RedisConfig{ @Bean public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)throws UnknowHostException{ //一般为了方便使用,直接使用<String,Object>类型 RedisTemplate<String,Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); //序列化配置 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(); //进行转义 ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.All,JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(OM); //String的序列化 StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); //字符串和hash的key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); template.setHashKeySerializer(stringRedisSerializer); //字符串和hash的value采用jackson的序列化方式 template.setValueSerializer(jackson2JsonRedisSerializer); template.setHashValueSerializer(stringRedisSerializer); template.afterPropertiesSet(); return template; } }
这篇关于Redis —— jedis,SpringBoot整合redis的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南