1. 程式人生 > >商鋪項目(Redis緩存)

商鋪項目(Redis緩存)

const ash 區別 cli cnblogs 相關配置 int hashmap 時間

AOF,RDB是兩種 redis持久化的機制。用於crash後,redis的恢復。

兩種區別就是,AOF是持續的用日誌記錄寫操作,crash後利用日誌恢復;RDB是平時寫操作的時候不觸發寫,只有手動提交save命令,或者是關閉命令時,才觸發備份操作。

選擇的標準,就是看系統是願意犧牲一些性能,換取更高的緩存一致性(AOF),還是願意寫操作頻繁的時候,不啟用備份來換取更高的性能,待手動運行save的時候,再做備份(RDB)。RDB這個就更有些 eventually consistent的意思了。

先講講配置:

技術分享

<!-- redis客戶端:Jedis -->
        <
dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>

技術分享

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
> <!-- Redis連接池的設置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 控制一個pool可分配多少個jedis實例 --> <property name="maxTotal" value="${redis.pool.maxActive}" /> <!-- 連接池中最多可空閑maxIdle個連接 ,這裏取值為20,表示即使沒有數據庫連接時依然可以保持20空閑的連接,而不被清除,隨時處於待命狀態。 --> <property name="maxIdle" value="${redis.pool.maxIdle}" /> <!-- 最大等待時間:當沒有可用連接時,連接池等待連接被歸還的最大時間(以毫秒計數),超過時間則拋出異常 --> <property name="maxWaitMillis" value="${redis.pool.maxWait}" /> <!-- 在獲取連接的時候檢查有效性 --> <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /> </bean> <!-- 創建Redis連接池,並做相關配置 --> <bean id="jedisWritePool" class="com.ouyan.o2o.cache.JedisPoolWriper" depends-on="jedisPoolConfig"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1" value="${redis.hostname}" /> <constructor-arg index="2" value="${redis.port}" type="int" /> </bean> <!-- 創建Redis工具類,封裝好Redis的連接以進行相關的操作 --> <bean id="jedisUtil" class="com.ouyan.o2o.cache.JedisUtil" scope="singleton"> <property name="jedisPool"> <ref bean="jedisWritePool" /> </property> </bean> <!-- Redis的key操作 --> <bean id="jedisKeys" class="com.ouyan.o2o.cache.JedisUtil$Keys" scope="singleton"> <constructor-arg ref="jedisUtil"></constructor-arg> </bean> <!-- Redis的Strings操作 --> <bean id="jedisStrings" class="com.ouyan.o2o.cache.JedisUtil$Strings" scope="singleton"> <constructor-arg ref="jedisUtil"></constructor-arg> </bean> <!-- Redis的Lists操作 --> <bean id="jedisLists" class="com.ouyan.o2o.cache.JedisUtil$Lists" scope="singleton"> <constructor-arg ref="jedisUtil"></constructor-arg> </bean> <!-- Redis的Sets操作 --> <bean id="jedisSets" class="com.ouyan.o2o.cache.JedisUtil$Sets" scope="singleton"> <constructor-arg ref="jedisUtil"></constructor-arg> </bean> <!-- Redis的HashMap操作 --> <bean id="jedisHash" class="com.ouyan.o2o.cache.JedisUtil$Hash" scope="singleton"> <constructor-arg ref="jedisUtil"></constructor-arg> </bean> </beans>

商鋪項目(Redis緩存)