一:linux下redis安裝
1.wget
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 ***.***.***.***: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密碼
# rename-command config b840fc02d524045429941cc15f59e41cb7be6c52 ###重定義命令,例如將config命令更名為乙個很複雜的名字:
# rename-command config "" 取消這個命令;
以上兩行,任意開啟乙個,即去掉前面的#
#daemonize no 預設情況下, redis 不是在後台執行的,生成模式時一般需要在後台執行,把該項的值更改為 yes
daemonize yes
改為yes後就看不到以下啟動視窗了
還要看下這篇文章:
以上改完配置後需要重啟服務
埠占用檢視
netstat -tunpl | grep 6379redis客戶端啟動
./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中加入以下**
host為redis所在服務的ip,port為redis的埠,password為redis密碼,高版本的redis要設定密碼,不然就會報連線池開啟異常。
tomcat redis 配置session共享
一 tomcat lib目錄下新增jar包 commons pool2 2.4.2.jar jedis 2.2.0.jar tomcat redis session manager 2.0.0.jar 二 tomcat cof context.xml 檔案下中新增redis session共享配置 ...
se實現陣列去重
es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。使用set實現陣列去重要簡單很多。第一種陣列去重方法 使用array.from let arr 12,43,23,43,68,12 let item new set arr console.log item 結果...
SE 軟體測試
軟體測試的目的與軟體工程所有其他階段的目的都是相反的。為什麼這麼說呢?軟體工程其他階段都是 建設性 的,系統開發人員從抽象概念出發,逐步設計出具體的軟體系統,最後選定一種程式語言來編寫 但是在軟體測試階段,測試人員努力設計出一系列的測試方案,目的確實 破壞 已經做好的軟體系統。當然這裡所說的 破壞 ...