Spring Data redis操作redis(一)k,v类型


redis配置

spring:
  application:
    name: spring_data_redis_test
  #redis配置
  redis:
    host: localhost
    port: 6379
    database: 0 #redis服务运行,之后默认提供了16个数据库,我们这里使用0数据库
    jedis:
      #redis连接池配置
      pool:
        max-active: 8 #最大连接数
        max-wait: 1ms #连接池最大阻塞等待时间
        max-idle: 4 #连接池中的最大空闲连接
        min-idle: 0 #连接池中的最小空闲连接

redis默认使用的0数据库
select 1切换到1数据库,获取值是获取不到的。

你也可以去config里面去改数据库的数量

k,v操作 --String类型

这里你想操作什么类型调用什么方法就行了,比如我要调用键值对类型的,就用opsForValue,用Hash类型的就是opsForHash(),也就是opsFor开头的加你的类型。

我们操作reids的时候发现,redis里面的数据是被框架序列化过后的数据

如果想让框架不进行序列化处理,需要一个redis配置类

@Configuration
public class RedisConfig extends CachingConfigurerSupport {

    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {

        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();

        //默认的Key序列化器为:JdkSerializationRedisSerializer
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());

        redisTemplate.setConnectionFactory(connectionFactory);

        return redisTemplate;
    }

}

搞这个配置类有可能报错,还需要引入坐标

注意版本

可以看到已经没有,key已经没有序列化了,但是value还是序列化,但是这个不影响。因为在ide中get到的值是正常的。





第二种方法就是注入StringRedisTemplate但是它只能操作String类型,里面封装了序列化等操作。


并且这种方式密码都没序列化,非常不戳。

posted @ 2022-07-01 13:26  长情c  阅读(182)  评论(0)    收藏  举报