前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)

Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)

作者头像
海加尔金鹰
发布2020-06-09 10:02:00
3.8K0
发布2020-06-09 10:02:00
举报

昨天完成了redis的简单安装Redis学习日志之Linux下的安装,今天就在项目当中简单整合使用一下

整合环境说明

JDK1.8版本

idea开发工具

springboot2.1.0版本

为什么选择Redission?

springboot2.0之前的版本默认支持的是Jedis 但是在2.0后换成了Lettuce。

java连接redis最多的就是Jedis,Redisson,Lettuce这三种方式

简单说明介绍:Redis的三个框架:Jedis,Redisson,Lettuce

最后选择了Redission,因为Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。

在POM当中引入对应JAR

根据Redission官方整合文档进行引入和使用:

代码语言:javascript
复制
        <!-- redisson -->
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson-spring-boot-starter</artifactId>
            <version>3.10.4</version>
        </dependency>

创建配置类RedissonConfig

代码语言:javascript
复制
package com.hjljy.blog.redission;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Auther: 海加尔金鹰
 * @Date: 2019年03月12日  17:47
 * @Description:
 */
@Configuration
public class RedissonConfig {

    @Bean
    public RedissonClient getRedisson(){
        Config config = new Config();
        //单机模式  依次设置redis地址和密码
        config.useSingleServer().
                setAddress("redis://IP地址:6379"). 
                setPassword("你的密码");
        return Redisson.create(config);
    }
}

这里只配置了最基本的参数,redis的配置方式有多种,配置参数也有很多,具体见官方参数配置说明(中文)

编写测试类进行测试

在进行测试之前,由于使用的是阿里云服务器,所以需要在安全组当中开放6379端口,不然连接不上。

代码语言:javascript
复制
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BlogApplicationTests {

    @Resource
    private RedissonClient redissonClient;

    @Test
    public void RedissionTest(){
        RBucket<String> key = redissonClient.getBucket("newday");
        key.set("新的数据");
        System.out.println("获取到新存入的数据:"+key.get());
        // 获取字符串格式的数据
        RBucket<String> keyObj = redissonClient.getBucket("myname");
        String s = keyObj.get();
        System.out.println("获取到昨天存入的数据:"+s);
    }
}

测试结果:

代码语言:javascript
复制
获取到新存入的数据:新的数据
[ ERROR] [2019-03-14 10:37:37] [redisson-netty-1-9] org.redisson.client.handler.CommandDecoder [204] - Unable to decode data. channel: [id: 0x704603a9, L:/192.168.0.147:10879 - R:47.94.139.213/47.94.139.213:6379], reply: ReplayingDecoderByteBuf(ridx=9, widx=9), command: (GET), params: [myname]
java.io.IOException: java.lang.NullPointerException

可以获取到项目当中新存入的数据,但是无法获取到昨天通过redis-cli存入的数据。

错误信息提示:无法解码数据,猜测可能是redis-cli存数据的编码和redission的编码不一致导致的。

最后网上找了很多的资料,找到了一个叫序列化策略的东西。大致的情况就是说redis-cli存数据时的序列化策略是string,但是redission的默认序列化策略是Jackson JSON 编码 Redission官网配置参数序列化说明

修改配置类RedissionConfig如下

代码语言:javascript
复制
    @Bean
    public RedissonClient getRedisson(){
        Config config = new Config();
        //单机模式  依次设置redis地址和密码
        config.useSingleServer().
                setAddress("redis://IP地址:6379"). 
                setPassword("你的密码");
        config.setCodec(new StringCodec());
        return Redisson.create(config);
    }

最后结果如下:

代码语言:javascript
复制
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.0.RELEASE)

获取到新存入的数据:新的数据
获取到昨天存入的数据:ycf

到这里简单的使用就完成了。

总结

1 RedissonClient 这个类很重要,可以看到数据的读取都是通过这个类进行的。

2 这么多种序列化方式,所以序列化可能是个坑,后面需要注意。

3 官方文档的说明很详细,没事可以多看看。

参考资料

Redission官方文档

springboot 整合redisson


标题:Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)

作者:海加尔金鹰

地址:https://www.hjljy.cn/articles/2019/03/14/1552533800142.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整合环境说明
  • 为什么选择Redission?
  • 在POM当中引入对应JAR
  • 创建配置类RedissonConfig
  • 编写测试类进行测试
  • 修改配置类RedissionConfig如下
  • 总结
  • 参考资料
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档