是一款开源的,使用 C 开发的高性能内存 Key/Value 数据库,支持 String、Set、Hash、List、Stream 等等数据类型。它被广泛用于缓存、消息队列、实时分析、计数器和排行榜等场景。基本上是当代应用中必不可少的软件!
Spring Boot 对 Redis 提供了开箱即用的组件:。通过这个 starter,我们只需要几行简单的配置就可以快速地在 Spring Boot 中整合、使用 Redis。
除了 外,还添加了 依赖,是因为我们需要使用到连接池。
只需要在 中配置如下常用的基本属性即可:
注意,如果你使用的是 spring boot 2.x,上述配置的命名空间应该是 而不是 。
更多完整的配置属性,请参阅 官方文档。
Spring Data Redis 默认使用 作为 Redis 客户端。官方还对 Jedis 提供了支持,你可以根据你的喜好进行选择。
要替换为 Jedis,首先需要从 排除 ,并且添加 依赖:
然后修改配置文件,把 配置替换为 配置即可:
得益于 Spring Data Redis 提供的抽象、封装。在修改了底层客户端后,我们基本上不用修改任何业务代码。
推荐在项目中使用 客户端,因为它是基于 Netty 开发,支持非阻塞式 IO,性能会更好。
配置就绪后, 已经可用,你可以在任何地方注入、使用:
对于 更完整的方法列表,你可以参阅其 java doc。
如果基本的 不能满足你的需求,你也可以自定义 实现。
例如,我们想要自定义一个 ,用于把任意 Java 对象序列化为 json 数据存储到 Redis,并且也能够把 Redis 中的 json 数据反序列化为任意 Java 对象。
如下:
首先,继承 ,泛型 表示 Redis Key 类型,一般都是 ,泛型 表示 Redis Value 类型,既然我们需要的是一个通用的 JSON Template,所以设置为 ,Value 值可以是任意对象。
在构造函数中注入 设置到父类,这是必须的。
然后创建 实例,它是基于 Jackson 的 实现,用于任意 Java 对象和 JSON 字符串之间的序列化/反序列化。使用该实例作为普通 Value 和 Hash Value 的序列化/反序列化器。注意,因为序列化的对象可能包含了 类型的日期字段,如:、 以及 ,所以需要注册 。
创建测试类进行测试。如下:
我们创建了一个 对象,存储了 2 个 和一个 字段。然后使用 把它存储为普通 Value 和 Hash Value。
存储成功后,再进行读取,反序列化为原来的 对象。
运行测试,执行日志如下:
如你所见,序列化为 JSON、反序列化为对象都没问题。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/8140.html