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儲存的不足,在部 分場合可以對關係資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便
方法/步驟
1.windows 下載windows版本,解壓出來,目前最新版本為2.4.5 下載地址 根據作業系統 進入相應的目錄 啟動redis服務端 redis-server.exe redis.conf
啟動服務端成功後 可以使用客戶端redis-cli.exe測試 redis-cli.exe -h 127.0.0.1 -p 6379 set keytest valuestest get keytest
redis配置檔案引數:
#是否以後臺守護程序執行,預設為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