本文详细介绍redis单机单实例安装与配置,服务及开机自启动。
一.安装redis
1)下载redis安装包
可去官网http://redis.io ,也可通过wget命令:
1 | wget http://download.redis.io/redis-stable.tar.gz |
2)解压
1 | tar –zxvf redis-stable.tar.gz |
3) 编译、安装
1 | cd redis-stable |
1 | make |
如果提示 gcc command
不识别,请自行安装 gcc
;
如果提示couldn’t execute tcl : no such file or dicrectory
,请自行安装tcl
;
如果提示
请执行 make distclean
,然后再 make
Make成功之后,会在src目录下多出一些文件,如下
可手动拷贝redis-server、redis-cli、redis-check-aof、redis-check-dump等至/usr/local/bin目录下,也可执行make install,此处执行make install
可查看,/usr/local/bin
下已有这些文件。
注意:若此时执行 redis-server –v
(查看版本命令),若提示 redis-server command not found
,则需要将 /usr/local/bin
目录加到环境变量,如何添加,此处不做详细介绍,可查看修改 /etc/profile
,(查看环境变量命令:echo $PATH
)
正常如下
至此,redis安装完成,接着配置。
二.修改配置文件.conf
1) 创建配置文件目录,dump file 目录,进程pid目录,log目录等
配置文件一般放在 /etc/
下,创建redis目录
1 | cd /etc/ |
ll
查看创建的redis目录
~
dump file、进程pid、log目录等,一般放在 /var/
目录下
,1
2
3
4
5
6
7cd /var/
mkdir redis
cd redis
mkdir data log run
至此,目录创建完毕
2) 修改配置文件,配置参数
首先拷贝解压包下的 redis.conf
文件至 /etc/redis
查看 /etc/redis/redis.conf
1 | cd /etc/redis/ |
打开redis.conf
文件
修改端口(默认6379)
修改pid目录为新建目录
修改dump目录为新建目录
修改log存储目录为新建目录
3) 持久化
默认rdb,可选择是否开启aof,若开启,修改配置文件 appendonly
4) 启动redis,查看各目录下文件
查看进程
redis已启动
查看dump, log, pid等
发现只有日志,没有dump和pid信息,是因为当前redis服务仍然是console模式运行的,且没有数据存储操作
停止redis服务,修改配置文件使得redis在 background
运行
改成yes
,保存,重启redis服务
1 | redis-cli shutdown |
查看pid信息,如下
查看dump信息
若配置了aof持久化方式,data目录下还会有aof的相关文件
5) 客户端连接redis
默认端口6379
6) 至此,redis基础配置完毕,若有其他相关配置调整,可查找文档再修改
三.服务及开机自启动
1) 创建redis启动脚本
拷贝解压包下 utils下redis
启动脚本至 /etc/init.d/
1 | cp redis_init_script /etc/init.d/ |
修改脚本名称(也可不修改)为redis
查看 ll
修改脚本pid及conf路径为实际路径
生产环境下,配置时,配置文件、pid等最好加上端口标识,以便区分,如
保存
退出
至此,在 /etc/init.d/
目录下,已经可以通过 service redis start/stop
命令启动和关闭redis
若在其他目录下,不能够使用这2个命令,请继续配置2),添加权限
2) 给启动脚本添加权限
1 | chmod +x /etc/init.d/redis |
实际命令,根据目录的不同,会不一样
相应的删除权限是
1 | chmod –x /etc/init.d/redis |
如果需要在开机的时候,redis服务自动启动,可继续3)
3) 设置自启动
1 | chkconfig redis on |
如果运行报错,提示
是因为没有在启动脚本里加入redis启动优先级信息,可添加如下
再次执行chkconfig redis on
,成功
至此,自启动配置完毕
redius 一些小优化
1) 当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。
修改redis配置文件,redis.conf。
1.注释掉原来的持久化规则1
2
3#save 900 1
#save 300 10
#save 60 10000
2.设置为空1
save ""
然后重启redis服务即可。
2) 不要让你的redis所在机器物理内存使用超过实际内存总理的3/5。
redis.conf
中 maxmemory
选项,该选项是告诉redis当使用了多少物理内存后就开始拒绝后续的写入请求,该参数能很好的保护redis不会因为使用了过多的物理内存后而导致swap,最终严重影响性能甚至崩溃。
已本机为例,本机内存为16G,业务需求5G redisu, 设置如下:1
2
3maxmemory 5368709120
或者
maxmemory 5gb
maxmemory 参数为
<bytes>
, 计算公式 5G 1024 1024 * 1024 或者直接写 5gb
设置了maxmemory
的选项,redis内存使用达到上限。可以通过设置LRU算法来删除部分key,释放空间。默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。
如果不设置maxmemory或者设置为0,64位系统不限制内存,32位系统最多使用3GB内存。
LRU是Least Recently Used 近期最少使用算法。
如果设置了 maxmemory
,一般都要设置过期策略。打开Redis的配置文件有如下描述,Redis有六种过期策略:
- volatile-lru -> 根据LRU算法生成的过期时间来删除。
- allkeys-lru -> 根据LRU算法删除任何key。
- volatile-random -> 根据过期设置来随机删除key。
- allkeys->random -> 无差别随机删。
- volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
- noeviction -> 谁也不删,直接在写操作时返回错误。
那么打开配置文件,添加如下一行,使用volatile-lru的过期策略:1
maxmemory-policy volatile-lru
保存文件退出,重启redis服务。
3) info命令查看Redis内存使用情况
查找列出的信息中 used_memory
字段:
1 | # Memory |
注意单位依然是 <bytes>
,本机 redis 使用量为 1.26M
4) 开启允许外部机器访问redis
修改redis的配置文件,将所有bind信息全部屏蔽。1
2
3# bind 192.168.1.100 10.0.0.1
# bind 192.168.1.8
# bind 127.0.0.1
修改完成后,需要重新启动redis服务。
如果有防火墙相关配置需要开启redis相关端口。
5) 设置访问密码
修改redis的配置文件 requirepass
字段。1
requirepass "uis.cc"
redis相关文件路径信息:(通过上面配置获得)
程序源路径: /temp/redis-3.2.4/
程序路径: /usr/local/bin/redis-server
配置文件路径: /etc/redis/redis.conf
pidfile路径: /var/redis/run/redis.pid
dump路径: /var/redis/data
logfile路径: /var/redis/log/redis.log
端口: 6379
客户端快速链接:redis-cli -h 10.10.10.10 -p 6379
服务方式启动 :service redis start/stop
路径方式启动:
启动redis命令: redis-server /etc/redis/redis.conf
停止redis命令: redis-cli shutdown
相关文章:
http://blog.csdn.net/ludonqin/article/details/47211109
https://my.oschina.net/dxqr/blog/711578
http://blog.csdn.net/tanzhang78/article/details/52073440