zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    The Python Standard Library
    Python 中的round函数
    Python文件类型
    Python中import的用法
    Python Symbols 各种符号
    python 一行写多个语句
    免费SSL证书(https网站)申请,便宜SSL https证书申请
    元宇宙游戏Axie龙头axs分析
    OLE DB provider "SQLNCLI10" for linked server "x.x.x.x" returned message "No transaction is active.".
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "xxx.xxx.xxx.xxx" was unable to begin a distributed transaction.
  • 原文地址:https://www.cnblogs.com/mileres/p/9877060.html
Copyright © 2011-2022 走看看