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

3.png

安装redis到指定目录:

4.png

创建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
来启动我们的服务了。不过这里我们先按照我们的目录结构,配置好我们配置文件在进行启动。

5.png

基础配置选项

首先编辑我们的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服务。

6.png

通过图片我们可以看出,此时的redis处于前台的进程,就是当会话结束,我们的redis服务也就结束了。这一般就是演示或者调试的时候可以使用。所以我们还是按照比较规范的来做。

shell> cd /usr/local/redis #进入到redis目录
shell> ./bin/redis-server ./conf/redis.conf  #使用配置文件启动redis服务
shell> lsof:6379 #查看redis服务是否监听端口

7.png

通过以上我们可以清晰的判断出我们的redis服务已经启动了,有了正常进程和端口监听,到此redis服务启动完成。

8.png

那么通过上图呢 ,可见我们的配置是符合预期的。这样指定的配置有助于我们理解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>

9.png

通过上图我们可以验证我们的redis是可以正常使用的。恭喜你,到此你已经可以使用单机redis提供基础的服务了。当然我们也可以通过redis的命令来查看我们的具体信息。

10.png

我们可以通过 上图中的 info 命令,来查看到我们redis以及系统的一些信息,比如redis的版本,系统内核版本,配置文件路径 、集群信息等等 。这里节省篇幅,只截取了图片的部分内容。大家可以参照在自己的服务器上来操作。

Redis配置的详解

首先我们可以通过redis的命令,来查看我们当前生效的全部配置。

11.png

我们使用 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>

12.png

下边我们对配置文件进行详细说明,方便大家以后的理解:

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独家出品,未经允许不能转载,否则追究法律责任

 

版权声明:
作者:WaterBear
链接:https://l-t.top/2112.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录