Linux 系统中 Redis 的使用

这是我参与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

整个流程主要包括:

  1. 使用 wget 下载redis,wget http://download.redis.io/releases/redis-6.0.8.tar.gz
  2. 解压打包文件,tar xzf redis-6.0.8.tar.gz
  3. 进入到redis文件下,cd redis-6.0.8
  4. 编译,make,只编译完成的话,可以通过执行src目录下的文件启动redis
  5. 安装,make install,安装完成后,redis命令默认安装到/usr/local/bin目录下,可以在其他路径直接执行

1.3 关闭和卸载 Redis

不再使用 Redis 后,可以将服务停止、卸载,并删除相关数据:

  1. 使用ps -ef | grep redis,查看当前系统 Redis 服务进程
  2. 使用pkill rediskill pid结束 Redis 进程
  3. 卸载时删除 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 *:匹配数据库中所有key
  • keys a*:匹配数据库中以a开头的key,可以使用正则匹配
  • exists [key]:判断key是否存在
  • get [key]:获取指定key的值
  • del [key]: 删除一个key
  • expire [key] seconds: 指定key的过期时间
  • ttl [key]:查看指定key的剩余过期时间,-1表示没有过期时间,-2表示已经过期,其他值表示剩余时间,单位秒

Guess you like

Origin juejin.im/post/7068662969332629534