5.Jedis的使用
什么是Jedis
是redis官方推荐的java开发工具 , 使用java操作Redis的jar包 !
使用步骤
-
1.导入对应的依赖
<!--jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version> </dependency> <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency>
-
2.测试链接
Jedis jedis = new Jedis("127.0.0.1",6379); System.out.println(jedis.ping());
Jedis启动事务
Jedis jedis = new Jedis("127.0.0.1",6379);
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","guoyuan");
jsonObject.put("sex","male");
String result = jsonObject.toJSONString();
//开启事务
Transaction multi = jedis.multi();
try {
multi.set("user1",result);
multi.set("user2",result);
//执行事务
multi.exec();
} catch (Exception e) {
//取消事务
multi.discard();
e.printStackTrace();
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
//关闭连接
jedis.close();
}
SpringBoot整合Jedis
SpringBoot操作数据:spring-data jpa , jdbc , mongodb , redis
SpringData 也是和SpringBoot齐名的项目
说明:在Spring Boot2.X之后,原来使用的Jedis被替换为了lettuce
jedis:采用的直连,多个线程操作的话,是不安全的,如果想去避免不安全的,使用jedis pool连接池,更像BIO模式
lettuce:采用netty,实例可以在多个线程中进行共享,不存在线程不安全的情况,可以减少线程数据,更像 NIO模式
源码分析
@Configuration(
proxyBeanMethods = false
)
@ConditionalOnClass({RedisOperations.class})
@EnableConfigurationProperties({RedisProperties.class})
@Import({LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class})
public class RedisAutoConfiguration {
public RedisAutoConfiguration() {
}
@Bean
@ConditionalOnMissingBean(name = {"redisTemplate"}) //可以自定义一个redisTemplate来替换这个
@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
//默认的RedisTemplate没有过多的配置,redis对象都是需要序列化的
//两个泛型都是Object的类型,后续使用需要强制转换成<String,Object>
RedisTemplate<Object, Object> template = new RedisTemplate();
template.setConnectionFactory(redisConnectionFactory);
return template;
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
//由于String是redis中最常用的类型,所以单独提出来了一个方法
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
return new StringRedisTemplate(redisConnectionFactory);
}
}
使用步骤
-
1.导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
-
2.配置连接
# SpringBoot所有配置类,都有一个自动配置类 RedisAutoConfiguration # 自动配置类都会绑定一个properties的配置文件 RedisProperties spring.redis.host=127.0.0.1 spring.redis.port=6379
-
3.测试连接
@Autowired private RedisTemplate redisTemplate; @Test void contextLoads() { //ops是操作相关的类型,例如opsForSet(),opsForList() redisTemplate.opsForValue().set("mykey","guoyuan"); System.out.println(redisTemplate.opsForValue().get("mykey")); }
拓展:
JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它采用一种 “键 : 值” 对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言
FastJSON
FastJSON 是由阿里巴巴工程师基于 JAVA 开发的一款 JSON 解析器和生成器,可用于将 Java 对象转换为其 JSON 表示形式,它还可以用于将 JSON 字符串转换为等效的 Java 对象。FastJSON 可以处理任意 Java 对象,包括没有源代码的预先存在的对象
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
郭远的博客空间!
喜欢就支持一下吧
打赏
微信
支付宝