信创缓存中间件TongRDS(Redis平替)安装、接入SpringBoot全流程

TongRDS 是由东方通开发的国产 分布式内存数据缓存中间件,功能类似于 Redis,但它是完全自主研发的国产产品,是国内信创的一大重要组件。它兼容 Redis 的接口,能做到应用代码无需改动即可替换使用。

TongRDS是没有直接的下载地址的。需要申请。申请下来之后,就会有安装包和授权文件:

TongRDS 的架构分为的中心节点和服务节点,因此部署也分两部分。 另外由于TongRDS是纯Java架构,因此需要**JDK环境,1.8以上。**这里不赘述安装Java过程。

1,解压安装包

两个安装包分别是:TongRDS-2.2.x.x.MC.tar.gz(中心节点 )和 TongRDS-2.2.x.x.Node.tar.gz(服务节点)。将他们放在任意的服务器安装目录底下,我是放在 /opt/tongRDS 目录下。

执行:

bash 复制代码
tar zxvf TongRDS-2.2.1.7_P1.MC.tar.gz
tar zxvf TongRDS-2.2.1.7_P1.Node.tar.gz

即可得到 pcenter(中心节点)和 pmemdb(服务节点)文件夹。两个文件夹的组成都是:

bin(服务启停脚本,包括启动、停止、重启、版本信息显示等)

etc(配置文件)

lib(服务程序和相关依赖,我们不需要操作)

logs(日志,格式都为server.log.xxxxxxxx)

2,配置授权文件

直接将授权文件放进pcenter目录即可,不需要别的配置。

3,安装中心节点

进入中心节点目录,检查并修改配置:

bash 复制代码
cd pcenter
vi etc/cluster.properties

检查文件内容为:WebSession.type=register 即可。

进入到bin目录下:

bash 复制代码
cd bin/

直接执行脚本启动,脚本有好几个,主要如下,按需求执行相应命令即可:

前台运行:./StartCenter.sh

后台运行:nohup ./StartCenter.sh &

重启中心节点:./RestartCenter.sh

停止中心节点:./StopCenter.sh

4,安装服务节点

先配一下中心节点的地址:

bash 复制代码
# 进入到pmemdb目录
cd pmemdb/
# 编辑xml文件
vi etc/dynamic.xml 

<?xml version="1.0" encoding="UTF-8"?>

<Server>

<Center>

<Password>454d51192b1704c60e19734ce6b38203</Password>

<EndPoint>

<Host>localhost</Host>

<Port>6300</Port>

</EndPoint>

</Center>

</Server>

很好理解,就是连接中心服务使用的密码(缺省配置可不修改)、中心节点的ip和端口。

启动:

同理,进入到bin目录下。

bash 复制代码
cd bin/

前台运行:./StartServer.sh

后台运行:nohup ./StartServer.sh &

重启中心节点:./RestartServer.sh

停止中心节点:./StopServer.sh

总结一下,在两个文件配置好了的情况下,还是非常快捷的:

bash 复制代码
# 中心节点启动
cd /opt/tongRDS/pcenter/bin
nohup ./StartCenter.sh &

# 服务节点启动
cd /opt/tongRDS/pmemdb/bin
nohup ./StartServer.sh &

5、验证

执行客户端连接脚本:

bash 复制代码
./pmemdb/bin/Client.sh

用起来跟Redis一模一样。

6、SpringBoot连接

连接和配置也和Redis一模一样,甚至端口都一样:我们刚刚没配置密码,所以不用密码。

复制代码
spring:
  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    # 连接超时时间(毫秒)默认是2000ms
    timeout: 50000
#    lettuce:
    jredis:
      pool:
        time-between-eviction-runs: 30
        # 连接池最大连接数(使用负值表示没有限制)
        max-active: 10
        # 连接池中的最大空闲连接
        max-idle: 5
        # 连接池中的最小空闲连接
        min-idle: 0
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms

官方文档中说:使用redisTemplate,该类可以存放任意类型的数据,但是该类型的数据必须实现序列,获取redis中对应的数据时,会进行**反序列化。**如果使用RedisTemplate,建议指定key,value,以及hashkey的序列化方式。

所以我们RedisConfig,设置一下序列化就好了,官方是这样建议的:

但我个人感觉按我们原来Redis的配置习惯来配置序列化器就好了。

最后,启动项目,或者写一个测试类测试一下缓存的插入查询等即可。

相关推荐
Java小混子9 小时前
【Redis】缓存和分布式锁
redis·分布式·缓存
柯南二号9 小时前
【Java后端】【可直接落地的 Redis 分布式锁实现】
java·redis·分布式
卑微的小鬼10 小时前
如何保证数据库和缓存的一致性?
数据库·缓存
原来是好奇心10 小时前
用户登录Token缓存Redis实践:提升SpringBoot应用性能
spring boot·redis·缓存
wuyunhang12345612 小时前
Redis---事务
数据库·redis·缓存
Tacy021312 小时前
Redis 安装教程
数据库·redis·缓存
用手编织世界13 小时前
redis-缓存-双写一致性
数据库·redis·缓存
凯子坚持 c17 小时前
Redis 数据类型:List 列表的深度解析与应用
数据库·redis·list
DONG91317 小时前
Redis内存架构解析与性能优化实战
数据库·redis·sql·database
张铁铁是个小胖子1 天前
redis执行lua脚本的原子性和数据库原子性的区别
数据库·redis·lua