1.初级篇:Redis 安装配置详解
1.初级篇:Redis 安装配置详解
2019-03-12 10:38:44
Redis可以兼容绝大部分的POSIX的系统,由于我们实际的学习或者线上的环境都是以Linux 为基础的,所以我们主要以Linux 为主来讲解这部分内容。
Redis的安装与配置
安装前的准备
其中包含 Redhat、Centos、Ubuntu、Debian 等,在安装的过程中,不同的系统也可能会有不同的安装方式,比如 Redhat 和 Centos 支持yum安装, 但是由于yum源可能更新的比较慢,所以我们一般的时候还是建议大家使用源码安装,版本可选,配置也更灵活。
什么时候使用yum或者Ubuntu的apt呢? 一般来讲当我们需要安装系统级的支持库,可以优先选择使用系统自带的软件安装管理工具进行安装,可以提高效率和兼容性。
系统与环境
CPU: 2核 推荐学习配置
内存: 4 G 推荐学习配置
操作系统: Centos 7.2
reids版本: redis-3.0.6
下载地址:http://download.redis.io/releases/redis-3.0.6.tar.gz
由于我们选择的使用源码安装,如果大家还记得第一节的介绍的话,应该能知道redis是基于C语言的。所以我们一定需要GCC的编译环境。下边我们来进行实际的操作。
下载与解压
安装的目录大家尽量在线上环境的时候,创建一个专用的工作账号。所有的程序运行使用该用户,避免使用root用户所带来的安全隐患。这里由于是讲解,将安装在 /usr/local/src 目录下。
shell> cd /usr/local/src
shell> wget http://download.redis.io/releases/redis-3.0.6.tar.gz
shell> tar zxf redis-3.0.6.tar.gz
shell> cd redis-3.0.6
编译与安装目录的选择
这个过程首先我们需要对redis的源码进行编译,然后安装到我们指定的目录下
shell> cd /usr/local/src/redis-3.0.6
shell> make
指定安装到 /usr/local/redis 目录
shell> make install PREFIX=/usr/local/redis
编译Redis
安装redis到指定目录:
创建Redis使用目录
由于我们是手动的编译和安装,所以我们需要拷贝我们的redis.conf 模板,创建我们存放数据文件、配置文件、日志文件、PID等目录,这样有助于我们深入的了解,redis运行的时候都用到了哪些东西。
shell> mkdir -p /usr/local/redis/{conf,log,data,var}
copy配置文件模板
shell> cp /usr/local/src/redis-3.0.6/redis.conf /usr/local/redis/conf/
此时我们的目录结构如下,此时我们就已经可以直接使用我们的bin 目录下redis-server 来指定我们的 conf/redis.conf
来启动我们的服务了。不过这里我们先按照我们的目录结构,配置好我们配置文件在进行启动。
基础配置选项
首先编辑我们的redis.conf 文件,下边我们列出几个我们现在需要修改以及关键的配置选项,按照我们设计的目录进行配置然后启动。
conf> daemonize yes #这里调整为yes后台启动
conf> pidfile /usr/local/redis/var/redis.pid #这里调整为我们指定的目录
conf> port 6379 #端口使用默认
conf> logfile "/usr/local/redis/log/redis.log" #指定到我们的log目录下
conf> dbfilename dump.rdb #数据文件名
conf> dir /usr/local/redis/data/ #数据文件存放目录
其他配置选项稍后进行讲解,我们先让我们的redis启动起来吧,哈哈
启动选项以及参数
我们可以使用redis-server 来指定我们的配置,当然还是建议使用配置文件比较规范,那么我们先来简单演示一下如何使用命令行配置启动redis服务。
通过图片我们可以看出,此时的redis处于前台的进程,就是当会话结束,我们的redis服务也就结束了。这一般就是演示或者调试的时候可以使用。所以我们还是按照比较规范的来做。
shell> cd /usr/local/redis #进入到redis目录
shell> ./bin/redis-server ./conf/redis.conf #使用配置文件启动redis服务
shell> lsof:6379 #查看redis服务是否监听端口
通过以上我们可以清晰的判断出我们的redis服务已经启动了,有了正常进程和端口监听,到此redis服务启动完成。
那么通过上图呢 ,可见我们的配置是符合预期的。这样指定的配置有助于我们理解redis的运行以及以后的问题排查。我们来连接一下redis,验证一下服务可用以及如何通过redis命令,来查看我们当前的信息以及生效的配置:
Redis的使用
shell> ./bin/redis-cli -h 127.0.0.1 -p 6379 #使用redis客户端连接
127.0.0.1:6379> set guzhou test1
OK
127.0.0.1:6379> get guzhou
"test1"
127.0.0.1:6379>
通过上图我们可以验证我们的redis是可以正常使用的。恭喜你,到此你已经可以使用单机redis提供基础的服务了。当然我们也可以通过redis的命令来查看我们的具体信息。
我们可以通过 上图中的 info 命令,来查看到我们redis以及系统的一些信息,比如redis的版本,系统内核版本,配置文件路径 、集群信息等等 。这里节省篇幅,只截取了图片的部分内容。大家可以参照在自己的服务器上来操作。
Redis配置的详解
首先我们可以通过redis的命令,来查看我们当前生效的全部配置。
我们使用 CONFIG GET * 来获取我们全部的配置,当然也可以指定我们选项的名称
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "1024000"
127.0.0.1:6379>
对于一些配置参数,我们也可以通过命令来动态的修改,而不需要去重启redis。这里的0代表了不限制!
127.0.0.1:6379>
127.0.0.1:6379> CONFIG SET maxmemory 0
OK
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379>
下边我们对配置文件进行详细说明,方便大家以后的理解:
redis.conf 配置项说明如下:pidfile /usr/local/redis/var/redis.pi
1.Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,避免前台对出。
daemonize no
2.当Redis以守护进程方式运行时,redis会生生成redis.pid文件,可以通过pidfile指定
pidfile /usr/local/redis/var/redis.pid
3.指定Redis监听端口,默认端口为6379.
port 6379
4.绑定的主机地址,可以是本机IP也可以127.0.0.1。
bind 127.0.0.1
5.当客户端闲置超时时间默认单位为 秒,如果指定为0,表示关闭该功能
timeout 300
6.Redis总共支持四个级别:debug、verbose、notice、warning,新手学习建议修改为debug模式,可以更好的观察redis使用时log的记录变化。
loglevel verbose
7.日志记录方式,默认为标准输出。
logfile stdout
8.设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
9.持久化同步到数据文件的配置,可以配合多个策略使用。
save <seconds> <changes>
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
10.存储到本地时数据文件是否压缩,默认为yes,Redis采用LZF压缩,当数据量较小,为节省CPU可以考虑关闭。数据较大时,考虑磁盘空间以及I/O性能进行选择。
rdbcompression yes
11.指定本地数据库文件名,默认值为dump.rdb,数据文件名字,符合公司或者一般命名规则,不过理论上来讲,是可以随便起的,哈哈。
dbfilename dump.rdb
12.指定本地数据库存放目录,这个路径是相对路径也可以写绝对路径
dir ./data/
13.主从配置时的选项,设置当本机为slav服务时,通过配置好的master地址以及端口,在slave启动时,它会自动从master进行数据同步。
slaveof <masterip> <masterport>
14.当master服务设置了密码保护时,slav服务连接master的密码,一般很少设置密码,特殊情况下才使用。
masterauth <master-password>
15.设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
requirepass foobared
16.设置同一时间最大客户端连接数,当前默认查询为10000,。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
maxclients 10000
17.指定Redis最大内存限制,redis启动之后会把数据加载到内存,如果达到达到最大值,但未加载完成会清理过期的key。默认0为不限制。
maxmemory <bytes>
18.指定是否在每次更新操作后进行日志记录,看数据的重要性,如果一条记录都不允许丢失的话,建议开启。
appendonly no
19.指定更新日志文件名,默认为appendonly.aof
appendfilename appendonly.aof
20.指定更新日志条件,共有3个可选值:
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折中,默认值)
appendfsync everysec
21.指定是否启用虚拟内存机制,默认值为no。
vm-enabled no
22.虚拟内存文件路径
vm-swap-file /tmp/redis.swap
23.设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm-max-memory 0
24. 指定包含其它的配置文件
include /path/to/local.conf
@版权声明:51CTO独家出品,未经允许不能转载,否则追究法律责任