Redis作为键值对内存数据,那么我们怎么访问数据库?回想之前访问mysql数据库的流程:数据库连接-预编译-访问数据,针对公共方法提取成配置类。那么Redis也同样,需要先获取连接对象才能做数据的增删改查。

那么这个对象-RedisTemplate

那怎么配置和使用的?

一、Jedis连接方式配置类

大致流程如下:

    // 1、获取redis连接池
    @Bean
    public JedisPoolConfig getJedisPoolConfig() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(100);
        jedisPoolConfig.setMinIdle(1); // 配置项当然也可以在application.properties文件中配置
        return jedisPoolConfig;
    }

    // 2、配置哨兵模式
    @Bean
    public RedisSentinelConfiguration getRedisConfiguration() {
        RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration();
        return redisSentinelConfiguration;
    }

    // 3、配置工厂
    @Bean
    public RedisConnectionFactory getRedisConnectionFactory(JedisPoolConfig jedisPoolConfig,
                                                            RedisSentinelConfiguration sentinelConfiguration) {
        return new JedisConnectionFactory(sentinelConfiguration, jedisPoolConfig);
    }

    // 4、实例化对象
    @Bean(name = "myStringRedisTemplate")
    public StringRedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        StringRedisTemplate redisTemplate = new StringRedisTemplate();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setEnableTransactionSupport(true);
        ... // 省略序列化配置
   return redisTemplate; }
JedisPoolConfig配置类参数说明如下:

二、Lettuce连接方式配置类

spring-boot-starter-data-redis 2.0之后默认启动就是lettuce方式

    @Bean
    @SuppressWarnings("all")
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        //便于开发自己编写redis
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        //序列化配置
        Jackson2JsonRedisSerializer<Object> objectJackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();//转义
        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        objectJackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        //string序列化
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        //key 采用string的序列化
        template.setKeySerializer(stringRedisSerializer);
        //hansh的key也采用string的序列化方式
        template.setHashKeySerializer(stringRedisSerializer);
        //value序列化方式采用jackson
        template.setValueSerializer(objectJackson2JsonRedisSerializer);
        //hansh的value也采用string的序列化方式
        template.setHashValueSerializer(objectJackson2JsonRedisSerializer);

        template.afterPropertiesSet();

        return template;
    }

 其中相关配置可以在application.properties配置文件中配置,前缀spring.redis.lettuce,参数具体含义基本和jedis一致

标签智能推荐:

RedisConfig配置类-jedis\lettuce

Redis作为键值对内存数据,那么我们怎么访问数据库?回想之前访问mysql数据库的流程:数据库连接-预编译-访问数据,针对公共方法提取成配置类。那么Redis也同样,需要先获取连接对象才能做数据的增删改查。那么这个对象-RedisTemp...

docker系列 -- 安装redis

1、拉取redis镜像docker pull redis:5.02、创建目录存储配置文件和数据mkdir -p /docker/redis && cd /docker/redismkdir conf data3、官网下载配置文件(http:...

Redis 命令

数据结构多样」:支持String、list,set,zset,hash等多种数据结构的存储key命令(1)select db:db为数字,表示切换数据库为db库(2)Dbsize:查看当前数据库的key的数量(3)Flushdb:清空当前库...

Redis-01

?一 : Redis 简介 二 : Redis 的下载与安装 三 : Redis 的基本操作 一、Redis 简介 中国被世界黑的最惨的一天2007年10月30日,北京奥运会门票面向境内公众第二阶段预售正式启动。上午一开始...

为什么CPU结果会影响redis性能

很多人都认为Redis 的线程在 CPU 上运行,CPU 快,Redis 处理请求的速度也很快。这种认知其实是片面的。CPU 的多核架构以及多 CPU 架构,也会影响到 Redis 的性能。如果不了解 CPU 对 Redis 的影响,在对 ...

Redis+AOP优化权限管理功能

总结:1.在mall-security模块中有一个过滤器,当用户登录后,请求会带着token经过这个过滤器。这个过滤器会根据用户携带的token进行类似免密登录的操作,其中有一步会从数据库中查询登录用户信息,下面是这个过滤器类的代码。每次都...

SpringBoo+Redis实现简单的发布订阅功能

Redis的发布订阅模式发布订阅(Pub/Sub):目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)...

2022年Redis最新面试题第6篇 - Redis淘汰策略

最近整理一份关于Redis常见面试题的,也会根据自己的经验, 标注一些出现的概率,最高5颗出现的概率最高。比如这样:Redis 最适合的场景, 可以简单的说说吗?出现概率: 整体目录大概如下:目录一、Redis基础知识1、什么是 Redi...

2022年Redis最新面试题第5篇 - Redis集群

最近整理一份关于Redis常见面试题的,也会根据自己的经验, 标注一些出现的概率,最高5颗出现的概率最高。比如这样:Redis 最适合的场景, 可以简单的说说吗?出现概率: 整体目录大概如下:目录一、Redis基础知识1、什么是 Redi...

2022年Redis最新面试题第4篇 - Redis数据持久

最近整理一份关于Redis常见面试题的,也会根据自己的经验, 标注一些出现的概率,最高5颗出现的概率最高。比如这样:Redis 最适合的场景, 可以简单的说说吗?出现概率: 整体目录大概如下:目录一、Redis基础知识1、什么是 Redi...