Redis安装及配置
针对不同的操作系统,Redis有Linux版和Windows版,这里先从Linux 版开始讲解。
Redis服务的安装环境
-
服务器操作系统 :CentOS 7.9 64位
-
Redis 版本:6.2.14
安装Redis
Redis的官网地址是:https://redis.io/,在这里可以下载Linux版本的Redis,下载地址:https://download.redis.io/releases/redis-6.2.14.tar.gz 登录Linux服务器,通过wget命令下载
wget https://download.redis.io/releases/redis-6.2.14.tar.gz
Linux平台一般将软件安装到(/usr/local)目录。
将下载的安装包解压,得到包含安装文件的redis-6.2.14目录,如下图:
[root@localhost local]# tar zxvf redis-6.2.14.tar.gz
进入redis-6.2.14目录,执行编译和安装命令,命令如下。
[root@localhost local]# cd redis-6.2.14
[root@localhost redis-6.2.14]# make PREFIX=/usr/local/redis install
注意:
PREFIX参数是配置安装时的顶级目录名,一般而言,如果不配置,该选项默认为/usr/local,安装后可执行默认放在/usr/local/bin中,库文件默认放在/usr/local/lib中,配置文件默认放在/usr/local/etc中,其他的资源文件则放在/usr/local/share中,各类文件的放置位置比较分散。上述命令通过配置PREFIX参数,指定将存放各类文件的目录都集中创建在/usr/local/redis目录中。2. 由于安装操作系统时所选择的组件可能不同,因此在安装过程中可能会出现如下错误提示。
解决方法为安装gcc-c++组件。
[root@localhost redis-6.2.14# yum -y install gcc-c++
当出现下图,则表示安装成功
安装过程中会根据PREFIX参数的设置,在/usr/local/目录下创建redis/bin目录结构,其中包含与Redis相关的可执行文件,如下图所示,其中redis-server用于启用Redis服务,redis-cli用于启动操作Redis的客户端。
最后,/usr/local/redis目录下创建etc目录,并将/usr/local/redis-6.2.14目录下的redis.config文件复制到其中,此文件为Redis的配置文件。
[root@localhost redis]# mkdir etc //创建etc目录
[root@localhost redis]# mkdir log //创建log目录,存放下面配置的logfile日志
[root@localhost redis]# cd etc //进入etc目录
[root@localhost etc]# cp /usr/local/redis-6.2.14/redis.conf ./
配置Redis
为了能够更好的使用Redis服务,安装完成后还需要对Redis进行多方面的配置。
1.开放Redis端口
Redis默认占用6379端口,需要在防火墙中设置开放对此端口的访问,执行如下命令。
[root@localhost etc]# firewall-cmd --permanent --zone=public --add-port=6379/tcp
[root@localhost etc]# firewall-cmd --reload
2.设置Redis配置文件
在安装时,将配置文件复制到了/usr/local/redis/etc目录,编辑此文件中的配置指令可控制Redis 运行时的行为。
[root@localhost etc]# vim /usr/local/redis/etc/redis.conf
2.1 设置Redis服务可以监听的请求IP地址
使用bind配置指定可以设置监听一个或多个IP地址的请求,多个IP 地址用空格分隔,配置方式如下。
bind 127.0.0.1 -::1 ==> bind 0.0.0.0
**注意:**在redis.config中bind的默认配置为bind 127.0.0.1,表示Redis仅能监听来自本机的IPv4请求,若将其修改为 bind 0.0.0.0 或使用“#”将bind指令注释掉,则可监听所有IP地址的请求。
如果Redis服务运行于Internet上,则绑定到所有IP地址是危险的,建议仅绑定与应用相关的客户端IP地址。
2.2 设置Redis监听的端口
daemonize no ==> daemonize yes
使用daemonize配置指令可以设置Redis是否作为守护进程(即后台服务)运行。在redis.conf中该指令默认设置为daemonize no,即在默认情况下,Redis不作为守护进程,而是作为会话进程运行。在我种情况下,执行Redis启动命令后不会返回到命令提示符,且不能关闭会话,否则Redis服务会停止。如果需要Redis作为守护进程于后台运行,则将其修改为daemonize yes即可。
2.3 设置Redis是否作为守护进程运行
使用logfile配置指令可以指定Redis的日志文件路径,需要指定到文件名。配置方式如下。
logfile "" ==> logfile "/usr/local/redis/log/redis.log"
2.4设置Redis数据库的数量(可选)
使用database配置指令可以设置Redis数据库的数量,默认设置的数量是16,对应的dbid范围是0~15。连接Redis时可以通过dbid选择要使用的数据库。在不同数据库中可以使用相同名称的key。
Redis中不同的可选数据库是以命名空间的形式管理,所有数据库实际上都存储在同一个数据文件中。实际上,Redis划分数据库主要用于在必要的情况下分隔同一应用中存储的key,而不是为了在Redis中区分多个不相关的应用。
2.5 设置Redis的工作目录(可选)
使用dir配置指定可以设置Redis的工作目录,即Redis的数据文件的存储目录。在redis.conf中默认设置为dir “./”,即在Redis安装目录下。可将其修改至其他路径,配置方式如下。
dir /data/redisdata/
2.6 设置Redis的访问密码(可选)
使用requirepass配置指令可以设置Redis的访问密码。在redis.conf中该指令默认为注释状态,即访问redis服务默认不需要密码。删除该指令前的”#”和空格解除注释,即可设置访问密码,配置方式如下。
requirepass 123456
Redis 具有的高性能特性,使得可以在很短的时间内并行尝试大量密码,因此应使用一个高强度的密码,使这种攻击不可行。
3. Redis基本使用
启动Redis
通过以上的学习,已经安装好了Redis,接下来将学习如何启动Redis服务及如何使用Redis自带的客户端连接Redis。
3.1启动Redis服务
启动Redis服务需要执行/usr/local/redis/bin/目录下的redis-server命令。为了便于观察启动/停止Redis服务时的日志信息,可以另外开启一个会话连接至Redis所在的服务器,并在此会话中跟踪Redis日志内容的变化。
[root@localhost bin]# cd /usr/local/redis/bin
[root@localhost bin]# ./redis-server ../etc/redis.conf
其中,…/etc/redis.conf为启动Redis服务所依据的配置文件
查看日志
//-f 循环读取
//-n<行数> 显示文件的尾部 n 行内容
[root@localhost log]# tail -f -n 500
[root@localhost log]# tail -n 100 redis.log
如下图所示,则表示启动成功
3.2 启动Redis客户端
使用redis-server命令启动Redis服务后,即可使用redis-cli命令启动Redis客户端访问Redis服务。
redis-cli命令的部分选项如下表所示
选项 | 说明 |
---|---|
-h | 服务器主机地址,默认为127.0.0.1 |
-p | 服务端口,默认为6379 |
-a | Redis服务访问密码 |
-n | 所要连接的数据库id,默认为0 |
最简单的redis-cli命令连接到本地Redis服务中的dbid为0的数据库。
[root@localhost bin]# ./redis-cli
Redis常用命令
启动Redis客户端后,即可在其中执行Redis的各种操作命令。
3.3 Redis常用命令的介绍
命令 | 示例 | 备注 |
---|---|---|
auth | auth password | 认证密码 |
set | set key value [ex seconds|px milliseconds] [nx|xx] | 设置key以保存valueex:设置过期时间,单位为秒;px:设置过期时间,单位为毫秒nx:仅在key不存在时设置该keyxx:仅在key已经存在时设置该key |
get | get key | 获取key对应的value |
exists | exists key1 [key2 …] | 判断指定的key是否存在 |
keys | keys pattern | 返回和pattern匹配的所有key |
del | del key1 [key2…] | 删除指定的key |
rename | rename key newkey | 将key重命名为newkey |
expire | expire key timeout | 在key上设置过期时间timeout |
ttl | ttl key | 以秒为单位返回key的剩余生存时间 |
persist | persist key | 删除key上现有的超时设置 |
select | select dbid | 选择指定的逻辑数据库 |
flusdb | flusdb | 删除当前所选数据库中的所有key |
flushall | flushall | 删除现有所有数据库中的key |
quit | quit | 要求服务器关闭连接 |