住房和城乡建设局部网站,google 网站 提交,做外贸都做哪些网站好免费,金华网站建设价格Spring-data-redis
在 Spring 中整合 Redis
jedis : 采用的直连#xff0c;多个线程操作的话#xff0c;是不安全的#xff0c;如果想要避免不安全的#xff0c;使用 jedis pool 连接池
lettuce : 采用netty#xff0c;实例可以再多个线程中进行共享#xff0c;不存在…Spring-data-redis
在 Spring 中整合 Redis
jedis : 采用的直连多个线程操作的话是不安全的如果想要避免不安全的使用 jedis pool 连接池
lettuce : 采用netty实例可以再多个线程中进行共享不存在线程不安全的情况可以减少线程数据了
一、配置步骤 加入 Redis 相关依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId
/dependency在 application.properties 中加入 Redis 相关配置 # Redis数据库索引默认为0
spring.redis.database0
# Redis服务器地址
spring.redis.host192.168.0.24
# Redis服务器连接端口
spring.redis.port6379
# Redis服务器连接密码默认为空
spring.redis.password
# 连接池最大连接数使用负值表示没有限制
spring.redis.pool.max-active200
# 连接池最大阻塞等待时间使用负值表示没有限制
spring.redis.pool.max-wait-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle10
# 连接池中的最小空闲连接
spring.redis.pool.min-idle0
# 连接超时时间毫秒
spring.redis.timeout1000二、Spring-data-redis相关功能
1模板类
RedisTemplate key value 泛型都是objectStringRedisTemplate key value 泛型都是String
2注意 两者数据 各自存、各自取数据互不相通 RedisTemplate不能取StringRedisTemplate存入的数据StringRedisTemplate不能取RedisTemplate存入的数据 序列化策略不同 RedisTemplate采用JDK的序列化策略JdkSerializationRedisSerializer保存的key和value 都是是采用此策略序列化保存的 存储时先将数据序列化为字节数组再存入 Redis 数据库查看 Redis 会发现是字节数组的形式类似乱码读取时会将数据当做字节数组转化为我们需要的数据用来存储对象但要实现 Serializable 接口 StringRedisTemplate采用String的序列化策略StringRedisSerializer保存的key和 value都是String类型存储和读取都为可读的数据采用此策略序列化保存的当存入对象时会报错:can not cast into String 两者的关系是 StringRedisTemplate 继承 RedisTemplate 使用场景 当你的 redis 数据库里面本来存的是字符串数据或者要存取的数据就是字符串类型数据的时候那么就使用StringRedisTemplate如果数据是复杂的对象类型而取出的时候又不想做任何的数据转换直接从Redis里面取出一个对 象那么使用RedisTemplate是更好的选择 五大数据类型 redisTemplate.opsForValue();//操作字符串redisTemplate.opsForList();//操作ListredisTemplate.opsForSet();//操作SetredisTemplate.opsForZSet();//操作ZSetredisTemplate.opsForHash();//操作Hash
3序列化策略
改变序列化策略
默认序列化方式存储到redis的数据人工不可读
不同策略序列化的过程有性能高低的
spring-data-redis 提供如下几种序列化策略
GenericToStringSerializer: //可以将任何对象泛化为字符串并序列化Jackson2JsonRedisSerializer: //跟JacksonJsonRedisSerializer实际上是一样的JacksonJsonRedisSerializer: //序列化object对象为json字符串JdkSerializationRedisSerializer: //序列化java对象StringRedisSerializer: //简单的字符串序列化