一:簡介(來自百科)
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]
二:環境搭建
1.windows
下載windows版本,解壓出來,目前最新版本爲2.4.5 下載地址
根據操作系統 進入相應的目錄
啓動Redis服務端 redis-server.exe redis.conf
啓動redis服務器時也可以直接指定配置文件,可以保存爲
startup.bat
文件:
redis-server.exe redis.conf
啓動服務端成功後 可以使用客戶端redis-cli.exe測試
redis-cli.exe -h 127.0.0.1 -p 6379
set keytest valuestest
get keytest
如果用客戶端來訪問,使用如下cmd命令,可以保存爲
client.bat
文件:redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
2.liunx 後續補
三:可視化工具Redis Desktop Manager
我們需要安裝一個輔助的可視化工具Redis Desktop Manager,這是下載地址:http://redisdesktop.com/download。
我們下載windows版本,安裝完成後,還沒有任何連接對象,那就讓我們給它添加一個。點擊下方的connect to redis server,出現個彈出框。然後Name我們可以隨便輸,Host添我們redis服務器的ip地址,本地可以直接填寫localhost,端口默認爲6379,Auth就是密碼,不是必填項,如果沒設置密碼可不填,點擊OK,建立完成。
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
#unixsocketperm 755
#客戶端超時時間,單位秒
timeout 300
#log級別,支持四個級別,debug,notice,verbose,warning
loglevel verbose
#log文件路徑
logfile
#log輸出到標準設備,logs不寫文件,輸出到空設備,/deb/null
logfile stdout
# and optionally update the other syslog parameters to suit your needs.
# syslog-enabled no
# syslog-ident redis
# syslog-facility local0
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
#保存快照的頻率,在多長時間內執行一定數量的寫操作時,保存快照的頻率,可以設置多個條件。如果都註釋掉,則不做內存數據持久化。如果只是把redis只用作cache,不開啓持久化功能
save <seconds> <changes>
save 900 1
#是否使用壓縮
rdbcompression
#快照數據庫名稱
dbfilename
#數據庫存放路徑
dir ./
#redis主從 做法 在從上填上主的IP和端口號 主上不用做任何設置
slaveof <masterip> <masterport>
#主庫服務器口令,如果主服務器未打開requirepass,則不需要此項
masterauth <master-password>
#在master服務器掛掉或者同步失敗時,從服務器是否繼續提供服務
slave-serve-stale-data yes
# this interval with the repl_ping_slave_period option. The default value is 10
# seconds.
#
# repl-ping-slave-period 10
# master data or ping response timeout. The default value is 60 seconds.
#
# It is important to make sure that this value is greater than the value
# specified for repl-ping-slave-period otherwise a timeout will be detected
# every time there is low traffic between the master and the slave.
#
# repl-timeout 60
#設置redis服務密碼,如果開啓,則客戶端連接時需要 -a 指定密碼,否則操作會提示無權限
#requirepass foobared
requirepass 123456
#命令改名,相當於linux alias,可以用改功能屏蔽一些危險命令
rename-command
#最大連接數;0 表示不限制
maxclients 128
#最大使用內存(分配的內存),推薦生產環境下做相應調整,我們用的是隻用來做高速緩存,限制2G。默認情況下,redis會佔用可用的所有內存
#maxmemory <bytes>
#過期策略,提供六種策略
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 no
#日誌文件的名稱,默認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