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