一、簡(jiǎn)介
redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。
這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫。redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用。
二、下載redis
Redis 官網(wǎng) :http://redis.io/
下載頁面:http://redis.io/download
官方文檔:http://redis.io/documentation
Windows 版本下載:https://github.com/dmajkic/redis/downloads
三、環(huán)境搭建
1. 放到磁盤里面。
2. 根據(jù)操作系統(tǒng) 進(jìn)入相應(yīng)的目錄 ,啟動(dòng)redis服務(wù)端 redis-server.exe redis.conf
3. 根據(jù)操作系統(tǒng) 進(jìn)入相應(yīng)的目錄 ,啟動(dòng)redis客戶端。
4. 測(cè)試redis緩存機(jī)制。
redis-cli.exe -h 127.0.0.1 -p 6379
set keytest valuestest
get keytest
5. 效果如下:
5. 測(cè)試調(diào)換順序調(diào)用的實(shí)例。
這個(gè)應(yīng)用可以用在驗(yàn)證碼的校驗(yàn)用以及緩存。
第一個(gè)號(hào)碼 18276487300 發(fā)送了一個(gè)驗(yàn)證碼”1234“,然后存到key-values 里面。
第二個(gè)號(hào)碼 18276487301 發(fā)送了一個(gè)驗(yàn)證碼”2345“,然后存到key-values 里面。
但是第二個(gè)驗(yàn)證碼先進(jìn)行驗(yàn)證,所以會(huì)先通過18276487301 來獲取驗(yàn)證碼。
這樣就防止了一些驗(yàn)證碼不知道對(duì)應(yīng)哪個(gè)手機(jī)號(hào)碼了。
后面會(huì)根據(jù)java配置到項(xiàng)目中應(yīng)用。
6.如何設(shè)置訪問密碼?
要啟動(dòng)redis客戶端,打開終端,輸入命令Redis命令行:redis-cli。這將連接到本地服務(wù)器,現(xiàn)在就可以運(yùn)行各種命令了。
四、redis.conf 配置文件
根據(jù)操作系統(tǒng) 進(jìn)入相應(yīng)的目錄 ,會(huì)看到一個(gè)配置文件redis.conf。
配置文件的原文如下:
View Code
解析過的配置文件:
#是否以后臺(tái)守護(hù)進(jìn)程運(yùn)行,默認(rèn)為no, 取值yes, no
daemonize no
#pid文件存放路徑
pidfile /var/run/redis.pid
#配置redis端口,默認(rèn)6379
port 6379
#綁定ip。默認(rèn)綁定所有本機(jī)ip,一般用在服務(wù)器多ip下,可以只監(jiān)聽內(nèi)網(wǎng)服務(wù)器ip,保證服務(wù)安全
bind 127.0.0.1
#sock文件
unixsocket /tmp/redis.sock
#客戶端超時(shí)時(shí)間,單位秒
timeout 300
#log級(jí)別,支持四個(gè)級(jí)別,debug,notice,verbose,warning
loglevel verbose
#log文件路徑
logfile
#log輸出到標(biāo)準(zhǔn)設(shè)備,logs不寫文件,輸出到空設(shè)備,/deb/null
logfile stdout
#保存快照的頻率,在多長(zhǎng)時(shí)間內(nèi)執(zhí)行一定數(shù)量的寫操作時(shí),保存快照的頻率,可以設(shè)置多個(gè)條件。如果都注釋掉,則不做內(nèi)存數(shù)據(jù)持久化。如果只是把redis只用作cache,不開啟持久化功能
save
save 900 1
#是否使用壓縮
rdbcompression
#快照數(shù)據(jù)庫名稱
dbfilename
#數(shù)據(jù)庫存放路徑
dir
#redis主從 做法 在從上填上主的IP和端口號(hào) 主上不用做任何設(shè)置
slaveof
#主庫服務(wù)器口令,如果主服務(wù)器未打開requirepass,則不需要此項(xiàng)
masterauth
#在master服務(wù)器掛掉或者同步失敗時(shí),從服務(wù)器是否繼續(xù)提供服務(wù)
slave-serve-stale-data yes
#設(shè)置redis服務(wù)密碼,如果開啟,則客戶端連接時(shí)需要 -a 指定密碼,否則操作會(huì)提示無權(quán)限
requirepass foobared
#命令改名,相當(dāng)于linux alias,可以用改功能屏蔽一些危險(xiǎn)命令
rename-command
#最大連接數(shù);0 表示不限制
maxclients 128
#最大使用內(nèi)存(分配的內(nèi)存),推薦生產(chǎn)環(huán)境下做相應(yīng)調(diào)整,我們用的是只用來做高速緩存,限制2G。默認(rèn)情況下,redis會(huì)占用可用的所有內(nèi)存
maxmemory
#過期策略,提供六種策略
maxmemory-policy volatile-lru
volatile-lru //刪除過期和lru 的key(默認(rèn)值)
allkeys-lru //刪除lru算法的key
volatile-random //隨機(jī)刪除即將過期key
allkeys->random //隨機(jī)刪除
volatile-ttl //刪除即將過期的
noeviction //永不過期,返回錯(cuò)誤
#是否開啟appendonlylog,開啟的話每次寫操作會(huì)記一條log。相當(dāng)于mysql的binlog;不同的是,每次redis啟動(dòng)都會(huì)讀此文件構(gòu)建完整數(shù)據(jù)。即使刪除rdb文件,數(shù)據(jù)也是安全的
appendonly
#日志文件的名稱,默認(rèn)appendonly.aof
appendfilename appendonly.aof
#異步寫append file 的策略。類似mysql事物log寫方式。三種
appendfsync
appendfsync always //同步,每次寫都要flush到磁盤,安全,速度慢。
appendfsync everysec //每秒寫(默認(rèn)值,推薦值)同mysql
appendfsync no //交給操作系統(tǒng)去做flush的動(dòng)作
#虛擬內(nèi)存開關(guān)
vm-enabled no
#swap文件,不同redis swap文件不能共享。而且生產(chǎn)環(huán)境下,不建議放在tmp目錄
vm-swap-file /tmp/redis.swap
#vm大小限制。0:不限制,建議60-80% 可用內(nèi)存大小
vm-max-memory 0
#根據(jù)緩存內(nèi)容大小調(diào)整,默認(rèn)32字節(jié)
vm-page-size 32
#page數(shù)。每 8 page,會(huì)占用1字節(jié)內(nèi)存。vm-page-size * vm-pages 等于 swap 文件大小
vm-pages 134217728
#vm 最大io線程數(shù)。注意: 0 標(biāo)志禁止使用vm
vm-max-threads 4
-
Redis
+關(guān)注
關(guān)注
0文章
370瀏覽量
10830
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論