这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战」
1. 安装 redis
1.1 必要环境
Redis 是 C 语言开发的缓存数据库,安装时编译需要依赖 gcc 环境,CnetOS7 中默认安装 4.8.5 版本的 gcc。
# 查看gcc版本
gcc -v
# 安装gcc环境
yum install gcc-c++
复制代码
编译 redis-6.x 版本时,要求 C5.3 以上版本的 gcc 编译器,如果版本过低,需要进行升级。
如果使用低版本 gcc 编译失败 Redis,最好先将之前的失败记录清除:
# redis 编译时报错后清除编译记录
make distclean
复制代码
使用 yum 工具 升级系统中的 gcc 版本:
# 升级gcc版本
yum -y install centos-release-sci
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
复制代码
升级到新版本后,可以在 linux 中设置高版本的生效时间,当前登录生效或长期有效。
# 临时生效,退出后恢复原版本
scl enable devtoolset-9 bash
# 长期有效,写入到配置文件中
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
复制代码
1.2 下载安装Redis
对于 Linux 系统中下载和安装 Redis,可以参考文章:Linux系统下安装Redis
整个流程主要包括:
- 使用 wget 下载redis,
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
- 解压打包文件,
tar xzf redis-6.0.8.tar.gz
- 进入到redis文件下,
cd redis-6.0.8
- 编译,
make
,只编译完成的话,可以通过执行src目录下的文件启动redis - 安装,
make install
,安装完成后,redis命令默认安装到/usr/local/bin目录下,可以在其他路径直接执行
1.3 关闭和卸载 Redis
不再使用 Redis 后,可以将服务停止、卸载,并删除相关数据:
- 使用
ps -ef | grep redis
,查看当前系统 Redis 服务进程 - 使用
pkill redis
或kill pid
结束 Redis 进程 - 卸载时删除 Redis 安装目录
/redis...
和/local/bin/redis
相关内容即可
2. 启动 Redis 服务
2.1 命令行启动 Redis 服务
Redis 安装完成后,可以进入到/redis/src
目录下,执行 ./redis-server
启动服务。
- 直接启动时,redis服务会占用一个窗口
- 如果需要指定redis启动时的配置,可以指定读取配置文件
./redis-server conf/redis.conf
2.2 后台启动 Redis 服务
直接在命令行启动 Redis 后,该命令窗口将不能进行其他操作,因此后台执行 Redis 服务更常使用。
- 在redis目录下找到 redis.conf 配置文件,
- 编辑配置文件内容,将 daemonize 设置为 yes ,代表开启后台运行,默认为 no
- 保存配置后,执行启动 Redis 服务,此时会自动在后台开启服务
2.3 Redis开启远程连接
Redis 服务安装后,为保证服务的安全,Redis 配置中默认只允许本地访问,如果想要远程访问 Redis 服务,需要在配置文件中开启设置。
- redis.conf 配置文件中,protected-mode 属性默认为 yes,表示开启保护,此时远程访问需要绑定 ip
- redis.conf 配置文件中设置
bind 127.0.0.1
,表示仅允许本地访问,可以注释掉或增加可访问的 ip 地址 - 可以通过编辑 redis.conf 文件,设置 protected-mode 属性为 no,此时关闭保护模式,可以远程连接 Redis 服务
- Redis 的默认访问密码为空,可以在配置文件中通过 equirepass 设置对应的访问密码,该配置默认被注释
3. Redis 登录操作
3.1 登录
Redis 安装并配置完成后,可以使用/redis/src
路径下的 redis-cli 文件登录,在命令行中指定登录的 Redis 服务地址:./redis-cli -h 127.0.0.1 -p 6379
。
如果 Redis 服务开启了密码认证,则在执行命令时显示(error) NOAUTH Authentication required.
,此时需要在登录时带上密码验证登录:./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
。
或者在登录后认证密码:
- 登录:
./redis-cli -h 127.0.0.1 -p 6379
, - 认证
auth myPassword
3.2 通信交互
Redis 登录成功后,可以使用 ping
命令来与 Redis 服务交互,Redis 服务返回 pong
表示成功和服务进行通信。
3.3 修改密码
登录 Redis 后,可以通过命令行查看和设置redis密码:
- 查看当前redis密码:
config get requirepass
,没有时显示空字符串 - 设置redis密码:
config set requirepass newPassword
除了命令行外,还可以在配置文件 /etc/redis.conf
中设置 Redis 密码,在文件中找到requirepass 内容,其后的值就是 Redis 密码,修改后保存文件,重启服务即可生效。
4. Redis 数据操作
4.1 查看数据库信息
Redis 安装后会默认开启 16 个数据库,默认选择第一个(0号)数据库使用,可以在配置文件/etc/redis/redis.conf
中查看配置项,其中databases = 16
,表示有16个数据库,默认使用0 号数据库。
- 可以修改配置文件来设置数据库数量
- 登录Redis后,使用
select [index]
来切换使用的数据库,切换成功后命令中显示[index]
4.2 Redis 数据查询
常见的 Redis 数据主要时对数据库中的 key 和 key对应的值的获取,如:
keys *
:匹配数据库中所有keykeys a*
:匹配数据库中以a开头的key,可以使用正则匹配exists [key]
:判断key是否存在get [key]
:获取指定key的值del [key]
: 删除一个keyexpire [key] seconds
: 指定key的过期时间ttl [key]
:查看指定key的剩余过期时间,-1表示没有过期时间,-2表示已经过期,其他值表示剩余时间,单位秒