redis源码安装
#安装目录
mkdir -p /data/apps/redis cd /data/tgz wget http://download.redis.io/releases/redis-3.2.1.tar.gz cd redis-3.2.1 make PREFIX=/data/apps/redis install #安装到指定目录中
#在安装redis成功后,你将可以在/data/apps/redis看到一个bin的目录,里面包括了以下文件:
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。或者通过telnet进行纯文本协议操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
#将redis做成一个服务
#必须将其复制到/etc/rc.d/init.d的目录下,将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。
cp /data/tgz/redis-3.2.1/utils/redis_init_script /etc/rc.d/init.d/redis
#如果这时添加注册服务:
chkconfig --add redis
#将报以下错误:
redis服务不支持chkconfig
#为此,我们需要更改redis脚本。
vim /etc/rc.d/init.d/redis #!/bin/sh #chkconfig: 2345 80 90 #添加这一行 #同时修改 EXEC=/data/apps/redis/bin/redis-server CLIEXEC=/data/apps/redis/bin/redis-cli
#将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf
mkdir /etc/redis cp /data/tgz/redis-3.0.7/redis.conf /etc/redis/6379.conf cp /data/tgz/redis-3.0.7/redis.conf /data/apps/redis/bin/redis.conf
redis配置密码,尤为重要
去掉行前的注释,并修改密码为所需的密码,保存文件
#requirepass foobared
requirepass mypasswd
由于未设置密码引起的问题:
#安全起见,密码必须设置,否则容易遭受攻击,具体请见以下博客:
redis未授权访问缺陷
http://my.oschina.net/huihua/blog/697300
http://blog.csdn.net/u010391029/article/details/51711185
http://www.th7.cn/db/nosql/201606/193670.shtml
http://www.tuicool.com/articles/bMFbIzU
http://my.oschina.net/huihua/blog/697300
解决方案
http://blog.csdn.net/fgf00/article/details/51388422
http://www.8090st.com/linux-bingdu-kill.html
http://www.ipastimes.com/post/86.html
redis安全设置
https://ruby-china.org/topics/28094
http://blog.csdn.net/21aspnet/article/details/50578668
http://blog.csdn.net/hel12he/article/details/46911159
http://www.111cn.net/sys/centos/85890.htm
https://www.phpxun.com/post/136.html
http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/
http://www.ctohome.com/FuWuQi/33/627.html
redis的持久化有rdb和aof两种。
rdb是记录一段时间内的操作,一盘的配置是一段时间内操作超过多少次就持久化。
aof可以实现每次操作都持久化。
这里我们使用aof。
配置方式,打开redis的配置文件。找到appendonly。默认是appendonly no。改成appendonly yes。
redis.conf参数,具体参考博文:
http://www.cnblogs.com/joshua317/p/5635297.html
daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间(秒级),第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
slaveof :主从配置,在redis-slave上配置master的ip port,即可
这样,redis服务脚本指定的CONF就存在了。默认情况下,Redis未启用认证,可以通过开启6379.conf的requirepass 指定一个验证密码。
#注册redis服务:
chkconfig --add redis
chkconfig redis on
将Redis的命令所在目录添加到系统参数PATH中
vi /etc/profile
在最后行追加:
export PATH="$PATH:/data/apps/redis/bin"
然后马上应用这个文件:
./etc/profile
或者
source /etc/profile
这样就可以直接调用redis-cli的命令了,如下所示:
redis-cli
redis 127.0.0.1:6379> auth mypasswd
OK
redis 127.0.0.1:6379>
#启动redis服务
#1.直接启动
./redis-server ./redis.conf &
#如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:
redis-cli -p 6380
#2 使用Redis启动脚本设置开机自启动(推荐)
service redis start
#关闭redis
./redis-cli -a mypasswd save
#或者使用bgsave命令
#关闭
redis-cli shutdown
#因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的
kill -9 PID
#指定密码关闭
/data/apps/redis/bin/redis-cli -a mypasswd shutdown
备注:
#关闭redis,关闭之前先保存 ./redis-cli -a pwd -p 6379 save #保存 ./redis-cli -a pwd -p 6379 shutdown #关闭 #启动redis ./redis-server ./redis.conf & #备注:生产环境,保存数据 使用 BGSAVE 命令,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端