国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

spring 使用redis集群配置

2019-11-08 20:40:25
字體:
供稿:網(wǎng)友

非常感謝http://www.cnblogs.com/zr520/p/5062025.html

上面兩篇介紹了redis集群的配置合一些基本的概念,所以接下來當(dāng)然是要在項(xiàng)目中使用咯,redis的java支持已經(jīng)做的非常好了,所以我們來試著使用這些api來進(jìn)行redis的操作,首先我們需要操作redis的架包:

    <dependency>        <groupId>redis.clients</groupId>        <artifactId>jedis</artifactId>        <version>2.7.3</version>    </dependency>

我們需要做的僅僅是在sPRing配置文件中注入這些基本類,然后自己實(shí)現(xiàn)dao,下面是配置文件:

復(fù)制代碼
<context:property-placeholder ignore-unresolvable="true" location="classpath:yonyou.properties" />        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">        <property name="maxTotal" value="1000"/>         <property name="maxIdle" value="10"/>         <property name="minIdle" value="1"/>        <property name="maxWaitMillis" value="30000"/>         <property name="testOnBorrow" value="true"/>         <property name="testOnReturn" value="true"/>         <property name="testWhileIdle" value="true"/>        <!-- <property name="testWhileIdle" value="true"/> -->    </bean>           <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" destroy-method="destroy">        <constructor-arg ref="jedisPoolConfig"/>         <constructor-arg>      <!--如果以后需要擴(kuò)展集群,只需要復(fù)制一份redis,修改端口,然后在這里配置即可-->            <list>             <bean class="redis.clients.jedis.JedisShardInfo">                 <constructor-arg index="0" value="127.0.0.1"/>                <constructor-arg index="1" value="6379"/>                <constructor-arg index="2" value="instance:01"/>            </bean>            <bean class="redis.clients.jedis.JedisShardInfo">                <constructor-arg index="0" value="127.0.0.1"/>                <constructor-arg index="1" value="6380"/>                <constructor-arg index="2" value="instance:02"/>            </bean>             <bean class="redis.clients.jedis.JedisShardInfo">                <constructor-arg index="0" value="127.0.0.1"/>                <constructor-arg index="1" value="6381"/>                <constructor-arg index="2" value="instance:03"/>            </bean>            </list>        </constructor-arg>        </bean>     <!--java幫我們同步sentinel的信息,將主從信息同步到客戶端來-->   <bean class="redis.clients.jedis.JedisSentinelPool">        <constructor-arg index="0" value="mymaster"/>        <constructor-arg index="1">            <set>                <value>127.0.0.1:26379</value>            </set>        </constructor-arg>        <constructor-arg index="2" ref="jedisPoolConfig"/>    </bean>復(fù)制代碼

上面配置好了以后,我們就相當(dāng)于將redis集群給映射過來了,下來我們只需要做一些操作,涉及到數(shù)據(jù)的CRUD.

復(fù)制代碼
package com.yonyou.hotusm.module.nosql.redis;import redis.clients.jedis.ShardedJedis;//這個接口是操作sharedJedispublic interface RedisDataSource {        public abstract ShardedJedis getRedisClient();    public void returnResource(ShardedJedis shardedJedis);    public void returnResource(ShardedJedis shardedJedis,boolean broken);}復(fù)制代碼

實(shí)現(xiàn):

復(fù)制代碼
package com.yonyou.hotusm.module.nosql.redis;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import redis.clients.jedis.ShardedJedis;import redis.clients.jedis.ShardedJedisPool;@Repository("redisDataSource")public class RedisDataSourceImpl implements RedisDataSource {    private static final Logger log = LoggerFactory.getLogger(RedisDataSourceImpl.class);    @Autowired    private ShardedJedisPool    shardedJedisPool;    public ShardedJedis getRedisClient() {        try {            ShardedJedis shardJedis = shardedJedisPool.getResource();            return shardJedis;        } catch (Exception e) {            log.error("getRedisClent error", e);        }        return null;    }    public void returnResource(ShardedJedis shardedJedis) {        shardedJedisPool.close();        //shardedJedisPool.returnResource(shardedJedis);    }    public void returnResource(ShardedJedis shardedJedis, boolean broken) {        if (broken) {            shardedJedisPool.close();            //shardedJedisPool.returnBrokenResource(shardedJedis);        } else {            shardedJedisPool.close();            //shardedJedisPool.returnResource(shardedJedis);        }    }}復(fù)制代碼

 下面就是操作jedis的具體類了:

復(fù)制代碼
@Repository("jedisTemplate")public class JedisTemplate {    private static final Logger log = LoggerFactory.getLogger(JedisTemplate.class);    @Autowired    private RedisDataSource     redisDataSource;    public void disconnect() {        ShardedJedis shardedJedis = redisDataSource.getRedisClient();        shardedJedis.disconnect();    }    /**     * 設(shè)置單個值     *      * @param key     * @param value     * @return     */    public String set(String key, String value) {        String result = null;        ShardedJedis shardedJedis = redisDataSource.getRedisClient();        if (shardedJedis == null) {            return result;        }        boolean broken = false;        try {            result = shardedJedis.set(key, value);        } catch (Exception e) {            e.printStackTrace();            log.error(e.getMessage(), e);            broken = true;        } finally {            redisDataSource.returnResource(shardedJedis, broken);        }        return result;    }    /**     * 獲取單個值     *      * @param key     * @return     */    public String get(String key) {        String result = null;        ShardedJedis shardedJedis = redisDataSource.getRedisClient();        if (shardedJedis == null) {            return result;        }        boolean broken = false;        try {            result = shardedJedis.get(key);        } catch (Exception e) {            log.error(e.getMessage(), e);            broken = true;        } finally {            redisDataSource.returnResource(shardedJedis, broken);        }        return result;    }復(fù)制代碼

真正的還有很多操作,list,set,哈希

同時可以參考http://www.sojson.com/blog/203.html


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大冶市| 舟山市| 泗洪县| 定襄县| 澄城县| 郴州市| 元阳县| 大埔县| 宿州市| 泾源县| 准格尔旗| 平远县| 阿拉善左旗| 同德县| 即墨市| 大庆市| 延吉市| 青州市| 海盐县| 泗洪县| 连江县| 余庆县| 梁河县| 六枝特区| 淮北市| 酉阳| 九江市| 全州县| 宿迁市| 靖江市| 寿宁县| 互助| 濮阳市| 林西县| 万州区| 凤阳县| 库尔勒市| 阿城市| 呼伦贝尔市| 禄劝| 南溪县|