linux离线部署redis及redis.conf详解

一、离线部署redis

由于博主部署的虚拟机没有网络也没有gcc编译器,所以就寻找具备gcc编译器的编译环境把redis编译安装好,Copy Redis安装目录文件夹到目标虚拟机的目录下。copy时redis-sentinel文件要先复制到安装目录外的其他目录,才能复制到编译环境外部,直接从安装目录复制到编译环境外会失败。

1.1      环境

l  Linux-EulerOS_CSP_19.1.0.B068

l  Redis-3.0.7.tar.gz

l  虚拟机无网络连接

1.2      依赖

l  依赖gcc3.4.3编译Redis-3.0.7.tar.gz解压包。可用 gcc -v 命令检测安装环境是否安装了gcc。

1.3      工具

l  WinSCP;主机window和虚拟机linux之间的文件传输

l  Vim:编辑redis.conf

l  Putty:远程登陆虚拟机

1.4  安装步骤(安装目录以个人目录为准)

l  Copy Redis-3.0.7.tar.gz : 虚拟机无网络,主机下载Redis-3.0.7.tar.gz使用WinSCP传输到编译环境的安装目录/opt/z00475942/

l  解压源码Redis-3.0.7.tar.gz

        

       l  结果:生成并解压到./redis-3.0.7目录,这个目录是自动生成的。

        

l   进入解压目录进行编译(依赖gcc

l  编译结果

l  安装到指定目录/opt/z00475942/redis,路径需为绝对路径

l  安装目录下的文件,redis-server是服务端,redis-cli是客户端

l  Copy redis.conf 安装目录, redis.confredis源码目

l  使用vim打开redis.conf   vim ./redis.conf  编辑cong文件, 设置daemonize 值为 yes 则redis可后台运行。

l  启动时可能遇到无权限的提示:需要设置启动文件至最高权限

 

l  启动Redis 1- ./redis-server(前端启动不读取配置文件,虚拟机关闭则关闭) 

                   2- ./redis-server /usr/local/redis/bin/redis.conf(后端启动读取配置文件启动,虚拟机关闭仍后台运行,前提是已设置redis.conf 文件中 daemonize 值为 yes) 

 

l  查看后台运行的redis

l  查看监听6379(默认端口)的程序

l  结束后台运行的redis,查看后台运行的redis为空。

1.6     Redis.conf 详解

l  Include:引入其它配置文件。比如说当你有多个server,而有一些配置项是它们公用的,那么你可以将这些公用的配置项写进一个配置文件common.conf里,然后这些serverinclude这个配置文件,这些server自己的配置项则分别写在自己的配置文件里。

l  bind:默认情况下,redis server 上所有有效的网络接口上监听客户端连接。如果只想让它在一个或多个网络接口上监听,那你就绑定一个IP或者多个IP。多个ip空格分隔即可。

l  protected-mode:当开启后,禁止公网访问redis。它启用的条件有两个,第一是没有使用bind,第二是没有设置访问密码。

l  daemonize: [yes]redis以守护线程运行,这时redis instance会将进程号pid写入默认文件/var/run/redis.pid。;[no]前端模式启动,ssh启动的命令窗口关闭则redis-server程序结束。

l  pid:当redis以守护线程运行时,它会把 pid 默认写到/var/run/redis.pid 文件里面,但是你可以在这里自己制定它的文件位置。

l  port:监听端口号,默认为 6379,如果你设为 0 redis 将不在 socket 上监听任何客户端连接。

l  tcp-backlog: 此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度,当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。

l  loglevel:日志级别。可选项有:debug(记录大量日志信息,适用于开发、测试阶段);  verbose(较多日志信息);  notice(适量日志信息,使用于生产环境);warning(仅有部分重要、关键信息才会被记录)。

l  logfile:日志文件的位置,当指定为空字符串时,为标准输出,如果redis已守护进程模式运行,那么日志将会输出到  /dev/null

l  save:保存数据到磁盘。格式是:save <seconds> <changes> ,含义是在 seconds 秒之后至少有 changeskeys 发生改变则保存一次。

l  databases:设置数据库的数目。默认的数据库是DB 0 ,可以在每个连接上使用select  <dbid> 命令选择一个不同的数据库,dbid是一个介于0databases - 1 之间的数值。

l  dir:数据库存放目录。必须是一个目录,aof文件也会保存到该目录下。

l  maxclients:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数-32redis server自身会使用一些),如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

l  maxmemory指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区,格式:maxmemory <bytes> 。

l  maxmemory-policy:当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择

1volatile-lru   利用LRU算法移除设置过过期时间的key

   (LRU:最近使用 Least Recently Used )

2allkeys-lru   利用LRU算法移除任何key

3volatile-random 移除设置过过期时间的随机key

4allkeys-random  移除随机key

5volatile-ttl   移除即将过期的key(minor TTL)

       6noeviction  noeviction   不移除任何key,只是返回一个写错误。默认选项

l  timeout:当客户端闲置多少秒后关闭连接,如果设置为0表示关闭该功能。

l  tcp-keepalive:单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300S

posted @ 2018-10-30 15:30  Mileres  阅读(7081)  评论(0编辑  收藏  举报