您的位置:首页 > 数据库 > Redis

redis应用

2015-07-13 11:34 585 查看
安装redis windows对应版本https://github.com/MSOpenTech/redis







属性文件redis.properties

#redis

redis.maxTotal=600

redis.maxIdle=300

redis.maxWaitMillis=6000

redis.testOnBorrow=true

redis.ip=127.0.0.1

redis.port=6379

配置文件applicationContext-redis.xml

<?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:p="http://www.springframework.org/schema/p"

    xmlns:beabs="http://www.springframework.org/schema/beans"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd ">

    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

        <property name="maxTotal" value="${redis.maxTotal}" />

        <property name="maxIdle" value="${redis.maxIdle}" />

        <property name="maxWaitMillis" value="${redis.maxWaitMillis}" />

        <property name="testOnBorrow" value="${redis.testOnBorrow}" />

    </bean>

    <bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo">

        <constructor-arg index="0" value="${redis.ip}" />

        <constructor-arg index="1" value="${redis.port}" type="int" />

    </bean>

    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">

        <constructor-arg index="0" ref="jedisPoolConfig" />

        <constructor-arg index="1" value="${redis.ip}"/>

        <constructor-arg index="2" value="${redis.port}" type="int"/>

    </bean>

    <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">

        <constructor-arg index="0" ref="jedisPoolConfig" />

        <constructor-arg index="1">

            <list>

                <ref bean="jedisShardInfo" />

            </list>

        </constructor-arg>

    </bean>

</beans>

加载配置文件applicationContext-webapp.xml

<bean id="propertyConfigurer"

        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <!-- 当有2个相同的文件需要spring选择加载哪个时,加载order越小的那个 -->

        <property name="order">

            <value>1</value>

        </property>

        <property name="locations">

            <list>

                <value>classpath:jdbc.properties</value>

                <value>classpath:redis.properties</value>

              ......

            </list>

        </property>

        <property name="ignoreResourceNotFound" value="true" />

        <property name="ignoreUnresolvablePlaceholders" value="true" />

    </bean>

package com.kingdee.p2p.redis;

import java.util.List;

import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import redis.clients.jedis.BinaryClient.LIST_POSITION;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.ShardedJedis;

import redis.clients.jedis.ShardedJedisPool;

/**

 *

 *

 * @项目名称:kingdee-portal-site

 *

 * @包名 com.kingdee.p2p.redis

 *

 * @类名 RedisAssist

 *

 * @类描述:redis操作类

 *

 * @修改备注:

 *

 * @version V1.0

 *

 */

@Component("redisAssist")

public class RedisAssist {

    @Autowired

    private JedisPool jedisPool;

    @Autowired

    private ShardedJedisPool shardedJedisPool;

    /**

     * 判断key是否存在

     *

     * @param String

     *            key

     * @return boolean

     * */

    public boolean exists(String key) {

        boolean exis = false;

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            exis = shardedJedis.exists(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return exis;

    }

    /**

     * 查询key的过期时间

     *

     * @param String

     *            key

     * @return 以秒为单位的时间表示

     * */

    public long ttl(String key) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long len = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            len = shardedJedis.ttl(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return len;

    }

    /**

     * 取消对key过期时间的设置

     *

     * @param key

     * @return 影响的记录数

     * */

    public long persist(String key) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.persist(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 删除key对应的记录

     *

     * @param String

     *            key

     * @return 删除的记录数

     * */

    public long del(String key) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.del(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 设置key的过期时间,以秒为单位

     *

     * @param String

     *            key

     * @param 时间

     *            ,已秒为单位

     * @return 影响的记录数

     * */

    public long expired(String key, int seconds) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.expire(key, seconds);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * SET CACHE VALUE

     *

     * @param key

     * @param values

     * @return

     */

    public boolean setCache(String key, String values) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            shardedJedis.set(key, values);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

    
e888
        shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return true;

    }

    /**

     * GET CACHE VALUE

     *

     * @param key

     * @return

     */

    public String getCache(String key) {

        String value = "";

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            value = shardedJedis.get(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return value;

    }

    /**

     * GET CACHE VALUES

     *

     * @param key

     * @return

     */

    public Set<String> getCaches(String key) {

        Set<String> value = null;

        Jedis jedis = jedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            value = jedis.keys(key + "*");

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            jedisPool.returnBrokenResource(jedis);

        } finally {

            if (borrowOrOprSuccess)

                jedisPool.returnResource(jedis);

        }

        return value;

    }

    /**

     * SET Hash Map CACHE VALUE

     *

     * @param hashname

     * @param key

     * @param values

     * @return

     */

    public boolean setMap(String mapName, String key, String values) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            shardedJedis.hset(mapName, key, values);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return true;

    }

    /**

     * GET HASH Map CACHE VALUE

     *

     * @param hashname

     * @param key

     * @return

     */

    public String getMap(String mapName, String key) {

        String value = "";

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            value = shardedJedis.hget(mapName, key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return value;

    }

    /**

     * SET HASH SET VALUE

     *

     * @param setName

     * @param setValues

     * @return

     */

    public boolean setSet(String setName, String setValues) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            shardedJedis.sadd(setName, setValues);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return true;

    }

    /**

     * GET HASH Set CACHE VALUE

     *

     * @param hashname

     * @param key

     * @return

     */

    public Set<String> getSet(String setName) {

        Set<String> set = null;

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        try {

            set = shardedJedis.smembers(setName);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return set;

    }

    /**

     * 向List头部追加记录

     *

     * @param String

     *            key

     * @param String

     *            value

     * @return 记录总数

     * */

    public long rpush(String key, String value) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        long count = 0l;

        try {

            count = shardedJedis.rpush(key, value);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 向List尾部追加记录

     *

     * @param String

     *            key

     * @param String

     *            value

     * @return 记录总数

     * */

    public long lpush(String key, String value) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        boolean borrowOrOprSuccess = false;

        long count = 0l;

        try {

            count = shardedJedis.lpush(key, value);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 获取List中指定位置的值

     *

     * @param String

     *            key

     * @param int index 位置

     * @return 值

     * **/

    public String lindex(String key, int index) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        String value = "";

        boolean borrowOrOprSuccess = false;

        try {

            value = shardedJedis.lindex(key, index);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return value;

    }

    /**

     * 在value的相对位置插入记录

     *

     * @param key

     * @param LIST_POSITION

     *            前面插入或后面插入

     * @param String

     *            pivot 相对位置的内容

     * @param String

     *            value 插入的内容

     * @return 记录总数

     * */

    public long linsert(String key, LIST_POSITION where, String pivot, String value) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.linsert(key, where, pivot, value);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * List长度

     *

     * @param String

     *            key

     * @return 长度

     * */

    public long llen(String key) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.llen(key);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 覆盖操作,将覆盖List中指定位置的值

     *

     * @param key

     * @param int index 位置

     * @param String

     *            value 值

     * @return 状态码

     * */

    public String lset(String key, int index, String value) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        String status = "";

        boolean borrowOrOprSuccess = false;

        try {

            status = shardedJedis.lset(key, index, value);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return status;

    }

    /**

     * 删除List中c条记录,被删除的记录值为value

     *

     * @param String

     *            key

     * @param int c 要删除的数量,如果为负数则从List的尾部检查并删除符合的记录

     * @param String

     *            value 要匹配的值

     * @return 删除后的List中的记录数

     * */

    public long lrem(String key, int c, String value) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        long count = 0l;

        boolean borrowOrOprSuccess = false;

        try {

            count = shardedJedis.lrem(key, c, value);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return count;

    }

    /**

     * 获取指定范围的记录,可以做为分页使用

     *

     * @param String

     *            key

     * @param long start

     * @param long end

     * @return List

     * */

    public List<String> lrange(String key, long start, long end) {

        ShardedJedis shardedJedis = shardedJedisPool.getResource();

        List<String> list = null;

        boolean borrowOrOprSuccess = false;

        try {

            list = shardedJedis.lrange(key, start, end);

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            shardedJedisPool.returnBrokenResource(shardedJedis);

        } finally {

            if (borrowOrOprSuccess)

                shardedJedisPool.returnResource(shardedJedis);

        }

        return list;

    }

}

* @包名 com.kingdee.p2p.redis

 *

 * @文件名:RedisDelAll.java

 *

 * @创建人:huangZeChen

 *

 * @版本信息:V1.0

 *

 * @创建时间:2015年5月6日 下午5:28:58

 *

 * @版权: 2015  

 *    

 */

package com.kingdee.p2p.redis;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.ShardedJedisPool;

/**

 *

 * @项目名称:kingdee-portal-site

 *

 * @包名 com.kingdee.p2p.redis

 *

 * @类名 RedisDelAll

 *

 * @类描述:批量删除Redis的key1

 *

 *

 * @修改时间:2015年5月6日 下午5:28:58

 *

 * @修改备注:

 *

 * @version V1.0

 *

 */

@Component("redisDelAll")

public class RedisDelAll {

    @Autowired

    private JedisPool jedisPool;

    @Autowired

    private ShardedJedisPool shardedJedisPool;

    public String delAll() {

        boolean borrowOrOprSuccess = false;

        Jedis jedis = jedisPool.getResource();

        String str = "";

        try {

            str = jedis.flushDB();

            borrowOrOprSuccess = true;

        } catch (Exception e) {

            jedisPool.returnBrokenResource(jedis);

        } finally {

            if (borrowOrOprSuccess)

                jedisPool.returnResource(jedis);

        }

        return str;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: