一:linux下redis安裝
1.wget http://download.redis.io/releases/redis-3.2.4.tar.gz
2.tar xzf redis-3.2.4.tar.gz
3.rm -rf redis-3.2.4.tar.gz
4.cd redis-3.2.4
5.make
這個過程需要等一小會
6.cd src
7. ./redis-server /usr/local/redis-3.2.4/redis.conf
注意:默認要在redis的src目錄下啟動 ./redis-server,同時最好指定redis.conf,這樣redis啟動就會按照指定的redis.conf配置執行
(redis.conf文件修改好后再啟動,或者修改后再重啟)
以上redis安裝完畢
二:redis配置修改
vi /usr/local/redis-3.2.4/redis.conf
測試環境時將bind 127.0.0.1注釋掉(前面加上#),正式環境打開。
為了安全起見,redis一般都是監聽127.0.0.1 但是有時候又有同網段能連接的需求,當然可以綁定0.0.0.0 用iptables來控制訪問權限,或者設置redis訪問密碼來保證數據安全
不設置將處理所有請求,建議生產環境中設置,有個誤區:bind是用來限制外網IP訪問的,其實不是,限制外網ip訪問可以通過iptables;如:-A INPUT -s 10.10.1.0/24 -p tcp -m state --state NEW -m tcp --dport 9966 -j ACCEPT ;
實際上,bind ip 綁定的是redis所在服務器網卡的ip,當然127.0.0.1也是可以的
如果綁定一個外網ip,就會報錯:Creating Server TCP listening socket xxx.xxx.xxx.xxx:9966: bind: Cannot assign requested address
bind 127.0.0.1 10.10.1.3
# 假設綁定是以上ip,使用 netstat -anp|grep 9966 會發現,這兩個ip被bind,其中10.10.1.3是服務器網卡的ip
# tcp 0 0 10.10.1.3:9966 0.0.0.0:* LISTEN 11188/redis-server
# tcp 0 0 127.0.0.1:9966 0.0.0.0:* LISTEN 11188/redis-server
找到# requirepass foobared ,修改為 requirepass 123456
123456為redis密碼
記錄操作命令[ Append-only file(縮寫aof)的方式](較安全持久化)
appendonly yes #啟用aof 持久化方式
# appendfsync always //收到寫命令就立即寫入磁盤,最慢,但是保證完全的持久化
appendfsync everysec //每秒鍾寫入磁盤一次,在性能和持久化方面做了很好的折中
# appendfsync no //完全依賴os,性能最好,持久化沒保證
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 ###重定義命令,例如將CONFIG命令更名為一個很復雜的名字:
# rename-command CONFIG "" 取消這個命令;
以上兩行,任意打開一個,即去掉前面的#
#daemonize no 默認情況下, redis 不是在后台運行的,生成模式時一般需要在后台運行,把該項的值更改為 yes
daemonize yes
改為yes后就看不到以下啟動窗口了

還要看下這篇文章:
http://www.cnblogs.com/shihaiming/p/5938191.html
以上改完配置后需要重啟服務
端口占用查看
netstat -tunpl | grep 6379
redis客戶端啟動
./redis-cli -h 127.0.0.1 -p 6379
有密碼時輸入 auth 123456
或者直接輸入(有密碼時 -a 123456)
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
keys *
可以查看redis所有的key
三:tomcat關聯redis
在tomcat8.0.37版本測試可用,8.5的tomcat不能用,應該是jar包不支持,暫時還不知道怎么解決
在tomcat安裝目錄下的lib中放入以下jar,每個tomcat實例都要這樣做。

在context.xml中加入以下代碼
<!-- 單點配置-->
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="192.168.1.249"
port="6379"
password="123456"
database="0"
maxInactiveInterval="60" />
host為redis所在服務的ip,port為redis的端口,password為redis密碼,高版本的redis要設置密碼,不然就會報連接池打開異常。
<!-- 集群配置-->
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
maxInactiveInterval="60"
password="123456"
sentinelMaster="mymaster"
sentinels="192.168.1.249:7000,192.168.1.249:7001,192.168.1.249:7002,192.168.1.248:7003,192.168.1.248:7004,192.168.1.248:7005"/>
