为什么要学Redis
目前刚上大三,准备暑假找实习了,但是目前所有的java岗位基本都要求会Redis,因此Redis就成了必备技能,但是大部分的Redis其实都是运行在服务器Linux上面的,因此需要了解如何在Linux上面如何部署运行Redis。
希望明年能成功找到实习。
安装
首先通过上面的链接下载Linux环境下的redis安装包.
获取安装包之后通过Xftp移动到/usr/local/src目录下
如下:
然后通过如下指令下载Redis所需gcc依赖.
yum install -y gcc tcl
之后解压安装包,操作方式如下
tar -zxvf redis-6.2.6.tar.gz
解压完毕之后进入redis的根目录
之后使用如下指令进行编译,如果没有出错那么安装成功.
make && make install
安装成功之后,默认的安装路径是在/usr/local/bin目录之下,进行查看
该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
- redis-cli:是redis提供的命令行客户端
- redis-server:是redis的服务端启动脚本
- redis-sentinel:是redis的哨兵启动脚本
再次进入redis目录,然后使用redis-server就可以启动redis了
当然这种启动方式是霸屏的,如果以这种方式启动那么就必须新开一个terminal来使用了,所以我们需要对redis.conf文件进行配置.
配置Redis
先使用Ctrl+C把redis结束.
然后进入redis的目录对配置文件进行拷贝,以防不时之需.
cp redis.conf redis.conf.bck
之后使用vim编辑器对配置文件进行编辑
vim redis.conf
如果对vim编辑器比较熟练的,就知道可以使用 / 对关键字进行搜索了.
首先输入/bind,然后回车之后使用n键来查找配置.
这里设置bind属性为0.0.0.0,使得所有主机可以访问当前服务器上的redis
重复一样的步骤,查找requirepass,这个配置用于设定redis的登录密码,当然,如果你注释掉它,那么默认就是无密码登录.
然后找到守护线程,开启
按照一样的方法,对如下属性进行设置
# 监听的端口 port 6379 # 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录 dir . # 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15 databases 1 # 设置redis能够使用的最大内存 maxmemory 512mb # 日志文件,默认为空,不记录日志,可以指定日志文件名 logfile "redis.log"
配置完毕上面的东西之后,使用如下指令对服务进行启动
redis-server redis.conf
可以发现控制台并没有被占据
然后使用如下指令停止服务
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务, # 因为之前配置了密码,因此需要通过 -u 来指定密码 redis-cli -u redis shutdown
开机自启
开机自启要求在system文件下放入一个服务文件
我们使用如下指令创建一个
vi /etc/systemd/system/redis.service
之后在其中写入对应内容如下
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
这里ExecStart保持与我一样即可.
配置完毕之后保存并退出,然后使用如下指令重载系统服务
systemctl daemon-reload
之后查看是否能使用如下指令启动redis
# 启动 systemctl start redis # 停止 systemctl stop redis # 重启 systemctl restart redis # 查看状态 systemctl status redis
如果启动成功,那么皆大欢喜,如果启动失败,可以直接输入redis-server来查看为什么报错
之后就可以尝试使用redis的客户端了
Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:
redis-cli [options] [commonds]
其中常见的options有:
-h 127.0.0.1
:指定要连接的redis节点的IP地址,默认是127.0.0.1-p 6379
:指定要连接的redis节点的端口,默认是6379-a 123321
:指定redis的访问密码
其中的commonds就是Redis的操作命令,例如:
ping
:与redis服务端做心跳测试,服务端正常会返回pong
.
同时如果你在登录的时候设定了密码但是没有指定-a参数那么需要登录之后进行验证
当然,很明显这种方式操作redis不方便,所以我的压缩包里面放置了目前主流的两种redis客户端远程操作工具.
打开安装包然后进行下载之后进行如下操作即可
然后就可以远程操作redis了,和使用DataGrip或者Navicat链接数据库都差不多,玩一玩就明白了
多服务开启
到上面位置,redis的基本配置是完毕了,但是为什么需要用一台redis服务器来开启多个redis呢?
如果学习过Redission的,那么应该自然会明白,这是为了实现Redission中的MulitiLock.
现在来进行单台虚拟机多Redis服务的配置.
首先进入Redis文件中,然后拷贝几份redis的配置文件如下.
cp redis.conf redis-6377.conf cp redis.conf redis-6378.conf
这里你打算设置几个Redis服务你就拷贝几份文件
之后进入这些文件,修改他们的端口号,使得他们之间端口互不冲突
并且修改题目的pidname,使得他们的pid文件位置不同
日志文件也是同理
之后修改他们的数据库文件位置
之后使用如下的方法开启redis不同端口的服务
redis-server redis-6378.conf ps aux | grep redis
之后就可以登录不同端口的redis客户端进行操作了
如果是SpringBoot程序就可以使用程序进行测试来判断是否配置多节点成功了.
可以发现两个节点都已经得到了锁
至此但服务器配置多环境Redis成功.