Redis 安装
安装环境:Linux debian (deepin)
软件包管理安装:
sudo apt-get install install redis-server
手动安装:
由于Redis是用C语言编写的,手动安装首先需要保证有gcc编译器,如果没有可输入 sudo apt-get install gcc 命令来安装
sudo wget http://download.redis.io/releases/redis-5.0.5.tar.gz
sudo tar zxvf redis-5.0.5.tar.gz
cp -r redis-5.0.5.tar.gz /usr/redis
cd /usr/redis/redis-5.0.5.tar.gz
sudo make
sudo make install
安装完成后redis就会在 /usr/redis/redis-5.0.5.tar.gz 路径中。安装完后是没有配置文件的,我们需要将配置文件复制到 /usr/redis 路径中。
启动Redis
上面描述了Redis的两种安装方式,我们在使用Redis时,如果是用软件包安装的话,可以使用service redis-server start 的方式来启动redis
若使用的是第二种使用方式的话,我们需要进入到刚刚安装的目录下,运行redis-server文件启动服务端,运行redis-cli启动客户端。
Redis 配置文件
Redis 的配置文件为redis.conf文件,如果您的redis是手动安装的话需要将redis的配置文件复制到您的安装目录。
由于本人是用deb软件包管理安装的redis,所以需要到etc/redis目录中找到redis.conf文件
如果使用的是第二种方式安装的,启动的时候需要带上配置文件地址
配置说明
- daemonize no #Redis守护进程配置
- pidfile /var/run/redis.pid #将进程写入到指定的文件
- port 6379 #指定Redis监听端口,默认是6379
- bind 127.0.0.1 #绑定的主机地址默认绑定本机
- timeout 300 #当客户端闲置多长时间后关闭连接,如果指定为0表示关闭该功能
- loglevel verbose #指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、waring
- logfile stdout #日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
- databases 16 #设置数据库的数量,默认为0.可以使用select (dbid) 命令在连接上指定数据库id
- save (seconds) (changes) #指定在多上时间内,有多少次更新操作,就将数据库同步到数据库文件,可以多条件配合,Redis中默认提供三个条件:1.save 9001 2.save 300 10 3.save 60 10000
- rdbcompression yes #指定存储至本地数据时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间可以关闭该选项,但是会到时数据库文件巨大
- dbfilename dump.rdb #指定本地数据库文件名,默认值为 dump.rdb
- dir ./ 指定本地文件存放目录
- saveof (masterip) (masterport) #设置当本机为slave服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
- masterauth (master-password) #当master服务设置了密码保护时,slave服务链接master的密码
- requirepass foobared #设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH (password)命令提供密码,默认关闭。若设置后链接需要使用redis-cli -a password。若需要远程登录需使用redis-cli -h host -p port -a password。
- maxclients 128 #设置同一时间最大客户端连接数,默认无限制,设置maxclients 0表示不作限制。当客户端链接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误
- maxmemory (byte) #指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,到达最大内存后,Redis会先尝试清除已到期或即将到期的key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作,Redis新的vm机制,会把key存放内存,Value会存放在swap分区
Redis宕机一般解决方案
Redis是一款优秀的中间缓存件,时常会存储大量的数据,如果数据一直新增,内存很快就会占满。
解决方案
- 微数据设置超时时间 (具体设置方案需要更具服务器的配置来)
- 采用LRU算法动态将不用的数据删除。使用这些策略是当内存超过maxmemory限定时会主动触发。具体算法详情见https://www.jianshu.com/p/afb440a48aba