天天看點

redis緩存的安裝和使用

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做了下簡單了封裝,再加上自己的連接配接池實作。