Redis_Spring_HelloWorld

源代码github地址:https://github.com/sidihuo/redis_spring_helloworld/tree/master 

maven管理

<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.0.2.RELEASE</version>
		</dependency>

spring

<?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:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
    http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

	<!--注解说明 -->
	<context:annotation-config />
	<!-- 把标记了@Controller注解的类转换为bean -->
	<context:component-scan base-package="com.mkfree.**" />
	<!-- redis工厂 -->
	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
		p:host-name="127.0.0.1" p:port="6379"  />
	<!-- redis服务封装 -->
	<bean id="redisService" class="com.redis.test.helloworld.RedisService">
	</bean>
</beans>


package com.redis.test.helloworld;

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 缓存服务器服务接口
 * @author hk
 *
 * 2012-12-16 上午3:09:18
 */
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;
	}
	private RedisService (){
		
	}
	//操作redis客户端
	private static Jedis jedis;
	@Autowired
	@Qualifier("jedisConnectionFactory")
	private JedisConnectionFactory jedisConnectionFactory;
}

package com.redis.test.helloworld;

import java.util.Set;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * redis spring 简单例子
 * @author hk
 *
 * 2012-12-22 上午10:40:15
 */
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();
	}
}
 

测试前要运行redis





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值