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 操作,因为它会阻塞所有客户端

 

posted @ 2016-07-02 15:48  joshua317  阅读(6994)  评论(0编辑  收藏  举报