redis介紹
redis本質上一個key/value資料庫,與memcached類似的nosql型資料庫,但是他的資料可以持久化的儲存在磁盤上,解決了服務重新開機後資料不丢失的問題,他的值可以是string(字元串)、list(清單)、sets(集合)或者是ordered sets(被排序的集合),所有的資料類型都具有push/pop、add/remove、執行服務端的并集、交集、兩個sets集中的差别等等操作,這些操作都是具有原子性的,redis還支援各種不同的排序能力
redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的資料類型、更少的利用記憶體(aof和vm)
redis支援絕大部分主流的開發語言,如:c、java、c#、php、perl、python、lua、erlang、ruby等等
官網:http://code.google.com/p/redis/
redis性能
根據redis官方的測試結果:在50個并發的情況下請求10w次,寫的速度是110000次/s,讀的速度是81000次/s
位址:http://code.google.com/p/redis/wiki/benchmarks
一、安裝過程:
最新穩定版,redis 2.0.4 stable
wget http://redis.googlecode.com/files/redis-2.6.7.tar.gz (其他版本到官網下載下傳即可)
tar zxf redis-2.6.7.tar.gz
cd redis-2.6.7
與其它軟體不同的是,不需要configure。
make
裝完了。
建立一個目錄
mkdir /usr/local/redis2
cd src
cp redis-server redis-benchmark redis-cli ../redis.conf /usr/local/redis2
二、啟動與停止:
cd /usr/local/redis2
啟動 ./redis-server > /dev/null & 或者 ./redis-server redis.conf 或者 ./redis-server redis.conf 1>log.log 2>errlog.log (1為标準輸出,2為錯誤輸出)
停止 ./redis-cli shutdown
用戶端連接配接 ./redis-cli
三、測試:
存值:
./redis-cli set hx value
取值:
./redis-cli get hx
> quit
退出連接配接
> dbsize
(integer) 12
目前資料庫中key的數量
> info
伺服器基本資訊
monitor
實時轉儲收到的請求
config get
擷取伺服器的參數配置
flushdb
清空目前資料庫
flushall
清除所有資料庫
四、附注
redis.conf配置檔案:
引用
#是否作為守護程序運作
daemonize yes
#配置pid的存放路徑及檔案名,預設為目前路徑下
pidfile redis.pid
#redis預設監聽端口
port 6379
#用戶端閑置多少秒後,斷開連接配接
timeout 300
#日志顯示級别
loglevel verbose
#指定日志輸出的檔案名,也可指定到标準輸出端口
logfile stdout
#設定資料庫的數量,預設連接配接的資料庫是0,可以通過select n來連接配接不同的資料庫
databases 16
#儲存資料到disk的政策
#當有一條keys資料被改變是,900秒重新整理到disk一次
save 900 1
#當有10條keys資料被改變時,300秒重新整理到disk一次
save 300 10
#當有1w條keys資料被改變時,60秒重新整理到disk一次
save 60 10000
#當dump .rdb資料庫的時候是否壓縮資料對象
rdbcompression yes
#dump資料庫的資料儲存的檔案名
dbfilename dump.rdb
#redis的工作目錄
dir /home/falcon/redis-2.0.0/
########### replication #####################
#redis的複制配置
# slaveof <masterip> <masterport>
# masterauth <master-password>
############## security ###########
# requirepass foobared
############### limits ##############
#最大用戶端連接配接數
# maxclients 128
#最大記憶體使用率
# maxmemory <bytes>
########## append only mode #########
#是否開啟日志功能
appendonly no
# 重新整理日志到disk的規則
# appendfsync always
appendfsync everysec
# appendfsync no
################ virtual memory ###########
#是否開啟vm功能
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# advanced config ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置hash表
activerehashing yes
五、redis所有常用指令
六、spring中整合redis
看了java clients,redis官網比較推薦jedis,而spring對redis的客服端做了一個統一封裝,支援(jedis, jredis, and rjc),這裡對說下spring data - redis。
1、使用maven的話那就很簡單了,直接加入依賴。
2、編輯pom.xml
如果沒有使用maven,那直接下載下傳jar包http://s3.amazonaws.com/dist.springframework.org/release/datakv/spring-data-redis-1.0.0.release.zip
3、spring配置檔案裡添加
那就可以直接用redistemplate,redistemplate和hibernatetemplate很相似。
4、java代碼
看了一點jedisconnectionfactory,之際上它隻是對jedis做了下簡單了封裝,再加上自己的連接配接池實作。