Redis学习笔记:使用第三方框架连接Redis服务器前需要做哪些事?

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 通过Lettuce连接远程Redis服务器需要在客户端配置文件中配置Redis服务器的地址、端口、密码等信息。

BackGround:

  1. 服务器:Redis安装在了Linux服务器中
  2. 客户端:使用本地的IDEA,搭建Maven工程,通过Lettuce作为客户端操作服务器的Redis

服务器配置工作

配置文件

配置文件中需要设置

  1. port:服务器端口号
  2. requirepass:密码验证
  3. protected-mode:将该参数设置为no
  4. bind:可以设置为*,方便开发环境

首先你需要知道配置文件在哪

配置文件的名称是:redis.conf,所以你可以通过下面的命令去寻找文件的位置:

复制

sudo find / -name redis.conf

效果如下:(可恶...一不小心暴露了我原先的远古版本)

[root@Chengyunlai /]# sudo find / -name redis.conf
/usr/local/redis-6.0.10/redis.conf

修改配置文件

  1. 先备份:

修改前,要备份,是个好习惯。(记得路径要对应成你的实际路径啊!也就是上面的/usr/local/redis-6.0.10/

cp /usr/local/redis-6.0.10/redis.conf /usr/local/redis-6.0.10/redis.conf.$(date +%Y-%m-%d-%H%M%S).bak

$(date +%Y-%m-%d-%H%M%S) 表示当前时间的年月日时分秒格式。该命令会在备份文件名后添加时间戳,便于区分备份版本。效果如下:

  1. 修改配置文件

还记得我们需要修改什么吗?port、requirepass、protected-mode、bind

使用vim命令,到redis.conf所在的目录,通过:

vim redis.conf

或者直接用上面输出的位置路径:

vim /usr/local/redis-6.0.10/redis.conf
出现提示信息,如果是备份的信息,选择 E,就是说我们要编辑该文件。如果没有出现提示信息,则忽略。

哇吼,进去真的是密密麻麻的,不要慌张。跟着我一步一步来。

image.png

请输入:/,然后接着你想要在此文件中查询的内容,例如port

:/port

效果如下,你会发现文件中port的内容高亮显示了,同时会定位到本页第一个出现port的位置:

image.png

可以使用 n 键向下跳转到下一个匹配项,使用 N 键向上跳转到上一个匹配项。

一般默认端口是6379,所以我们可以通过如下命令定位:

:/port 6379

输入i命令,进入编辑模式,将6379改成其他端口(安全),具体端口范围默认是:32768 到 60999


同理我们定位修改requirepass

设置为 requirepass 实际密码

requirepass该参数用于启用 Redis 的密码身份验证功能。如果该参数的值为空,那么 Redis 将不需要进行密码身份验证。请确保该参数已经设置,在客户端连接以及重启Redis服务器时都需要进行密码验证。


同理我们定位修改protected-mode

设置为 protected-mod no

protected-mode的参数是设置Redis的保护模式,如果参数为yes只有来自本地 IP 地址的连接才能访问 Redis服务器。设置该参数的值为 "no",允许来自远程 IP 地址的连接。


同理我们定位修改bind

设置为 bind *

bind指定Redis服务器绑定的IP地址。可以设置为两个值:1. 实际使用的IP地址;2. *

作用:允许从任何 IP 地址连接到 Redis 服务器。

关闭Redis服务器

如果你原先启动了,做了配置修改,你当然要关闭!

我们首先要找到redis-cli,也就是客户端,查找的方式同上。执行命令如下:

redis-cli -a 新密码 -p 新端口 shutdown
有人可能会有疑问了!诶我刚做的设置,现在Redis应该是老配置啊,咋还需要填入修改的密码和端口这些信息呢?因为redis服务在运行时已经使用了修改后的密码进行身份验证,所以关闭服务时同样需要使用新密码。而端口也是服务在运行时已经使用了新端口号进行监听,所以在关闭服务时需要使用新端口号。

重启

redis-cli同目录下有redis-server。我们在启动服务器的时候记得带上配置文件:

./redis-server /usr/local/redis-6.0.10/redis.conf

OK,以上就是服务器的配置。


Maven工程

这里就直接贴代码和步骤了,不说理由咯!上车。

依赖

<dependencies>
    <dependency>
        <groupId>io.lettuce</groupId>
        <artifactId>lettuce-core</artifactId>
        <version>6.1.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

测试

public class RedisTest {
    private static RedisClient redisClient;

    private static StatefulRedisConnection<String, String> connection;

    private static RedisAsyncCommands<String, String> asyncCommands;

    @Before
    public void before(){
        redisClient = RedisClient.create("redis://密码@IP:端口/0");
        connection = redisClient.connect();
        asyncCommands = connection.async();
    }

    @After
    public void after(){
        connection.close();
        redisClient.shutdown();
    }

    /**
     * @Description: 操控Redis客户端
     * @Param: []
     * @return: void
     * @Author: chengyunlai
     * @Date: 2023/3/1
     */
    @Test
    public void testConnectAndSet() throws Exception {
        asyncCommands.set("name", "Chengyunlai").get(1, TimeUnit.SECONDS);
    }

该工程若是了解起来有问题,请在评论区中留言。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
23天前
|
NoSQL Redis 数据库
Redis 连接
10月更文挑战第19天
27 0
|
21天前
|
NoSQL 网络协议 算法
Redis 客户端连接
10月更文挑战第21天
26 1
|
23天前
|
NoSQL Unix Linux
Redis 服务器
10月更文挑战第19天
21 1
|
1月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
356 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
286 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
30天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
1月前
|
弹性计算 安全 Windows
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
通过远程桌面连接Windows服务器提示“由于协议错误,会话将被中断,请重新连接到远程计算机”错误怎么办?
|
3月前
|
缓存 监控 NoSQL
【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤
【Azure Redis 缓存】Azure Redis出现了超时问题后,记录一步一步的排查出异常的客户端连接和所执行命令的步骤
|
NoSQL Redis 数据库
一步一步学习Redis——连接服务的相关命令
一步一步学习Redis——连接服务的相关命令
一步一步学习Redis——连接服务的相关命令
|
NoSQL Java 编译器
一步一步学习Redis——Java连接Redis(Java中使用Redis命令)
一步一步学习Redis——Java连接Redis(Java中使用Redis命令)
1043 0
一步一步学习Redis——Java连接Redis(Java中使用Redis命令)