#安裝目錄
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 操作,因為它會阻塞所有客戶端