在SpringMVC中使用Redis的简单实例

来源:互联网 发布:江恩四方形软件下载 编辑:程序博客网 时间:2024/05/21 17:52

本实例使用maven构建,需要在pom中引入两个jar包

<!-- 使用redis --><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.4.1.RELEASE</version></dependency><!-- 使用jedis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.6.2</version></dependency>

spring-context.xml代码需要如下配置

<!-- redis工厂 --><bean id="jedisConnectionFactory"class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"p:host-name="192.168.122.80" p:port="6379" p:password=""></bean><!-- redis服务封装 --><bean id="redisService" class="com.SSM.redis.RedisService"></bean>
这里配置了一个跟spring 集成的redis客户端,ip port password自己定


下面是RedisService,里面包含了对redis的方法,还有更多的方法没有去使用,这里当一个入门的小例子吧

package com.SSM.redis;import java.util.Set;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;import redis.clients.jedis.Jedis;/** * 封装redis 缓存服务器服务接口 */public class RedisService {    /**     * 通过key删除(字节)     * @param key     */    public void del(byte [] key){        this.getJedis().del(key);    }    /**     * 通过key删除     * @param key     */    public void del(String key){        this.getJedis().del(key);    }    /**     * 添加key value 并且设置存活时间(byte)     * @param key     * @param value     * @param liveTime     */    public void set(byte [] key,byte [] value,int liveTime){        this.set(key, value);        this.getJedis().expire(key, liveTime);    }    /**     * 添加key value 并且设置存活时间     * @param key     * @param value     * @param liveTime     */    public void set(String key,String value,int liveTime){        this.set(key, value);        this.getJedis().expire(key, liveTime);    }    /**     * 添加key value     * @param key     * @param value     */    public void set(String key,String value){        this.getJedis().set(key, value);    }    /**添加key value (字节)(序列化)     * @param key     * @param value     */    public void set(byte [] key,byte [] value){        this.getJedis().set(key, value);    }    /**     * 获取redis value (String)     * @param key     * @return     */    public String get(String key){        String value = this.getJedis().get(key);        return value;    }    /**     * 获取redis value (byte [] )(反序列化)     * @param key     * @return     */    public byte[] get(byte [] key){        return this.getJedis().get(key);    }    /**     * 通过正则匹配keys     * @param pattern     * @return     */    public Set<String> keys(String pattern){        return this.getJedis().keys(pattern);    }    /**     * 检查key是否已经存在     * @param key     * @return     */    public boolean exists(String key){        return this.getJedis().exists(key);    }    /**     * 清空redis 所有数据     * @return     */    public String flushDB(){        return this.getJedis().flushDB();    }    /**     * 查看redis里有多少数据     */    public long dbSize(){        return this.getJedis().dbSize();    }    /**     * 检查是否连接成功     * @return     */    public String ping(){        return this.getJedis().ping();    }    /**     * 获取一个jedis 客户端     * @return     */    private Jedis getJedis(){        if(jedis == null){            return jedisConnectionFactory.getShardInfo().createResource();        }        return jedis;    }        /**     * 保存数据     * @return     */    public String saveJedis(){    return this.getJedis().save();    }        private RedisService (){    }    //操作redis客户端    private static Jedis jedis;    @Autowired    @Qualifier("jedisConnectionFactory")    private JedisConnectionFactory jedisConnectionFactory;}


下面是测试代码TestRedis.java

import java.util.Set;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * redis spring 简单例子 */public class TestRedis {    public static void main(String[] args) throws InterruptedException {        ApplicationContext app = new ClassPathXmlApplicationContext("classpath:spring-context.xml");        //这里已经配置好,属于一个redis的服务接口        RedisService redisService = (RedisService) app.getBean("redisService");        String ping = redisService.ping();//测试是否连接成功,连接成功输出PONG        System.out.println(ping);        //首先,我们看下redis服务里是否有数据        long dbSizeStart = redisService.dbSize();        System.out.println(dbSizeStart);        redisService.set("username", "oyhk");//设值(查看了源代码,默认存活时间30分钟)        String username = redisService.get("username");//取值         System.out.println(username);        redisService.set("username1", "oyhk1", 1);//设值,并且设置数据的存活时间(这里以秒为单位)        String username1 = redisService.get("username1");        System.out.println(username1);        Thread.sleep(2000);//我睡眠一会,再去取,这个时间超过了,他的存活时间        String liveUsername1 = redisService.get("username1");        System.out.println(liveUsername1);//输出null        //是否存在        boolean exist = redisService.exists("username");        System.out.println(exist);        //查看keys        Set<String> keys = redisService.keys("*");//这里查看所有的keys        System.out.println(keys);//只有username username1(已经清空了)        //删除        redisService.set("username2", "oyhk2");        String username2 = redisService.get("username2");        System.out.println(username2);        redisService.del("username2");        String username2_2 = redisService.get("username2");        System.out.println(username2_2);//如果为null,那么就是删除数据了        //dbsize        long dbSizeEnd = redisService.dbSize();        System.out.println(dbSizeEnd);        //清空reids所有数据        //redisService.flushDB();    }}


参考的博客:http://blog.csdn.net/sunny243788557/article/details/34431357


原创粉丝点击