java使用redis

使用java中使用redis,需要java连接redis的客户端,这里我使用redis的java客户端jedis.jar

JedisServer:

public class RedisServer {
	
	private JedisPool jedisPool;
	
	private final static RedisServer instance = new RedisServer();
	
	private RedisServer(){}
	
	public static RedisServer getIntance(){
		return instance;
	}
	
	public void init(){
		Config config = new Config();
		config.maxActive = 6;
		config.maxWait = 2000;
		
		jedisPool = new JedisPool(config, "127.0.0.1", 6387);
	}
	
	public void destroy(){
		jedisPool.destroy();
	}
	
	public Jedis getResource(){
		return jedisPool.getResource();
	}
	
	public void returnResource(Jedis jedis){
		if(jedis != null){			
			jedisPool.returnResource(jedis);
		}
	}

}

Redis端口:6387,可通过redis的redis.conf配置:

# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
# port 6379
port 6387
JedisClient:

public class RedisClient {
	
	public static void main(String[] args){
		RedisServer.getIntance().init();
		
		Jedis jedis = RedisServer.getIntance().getResource();
		
		DataType.type(jedis);
		DataType.string(jedis);
		DataType.hash(jedis);
		DataType.list(jedis);
		DataType.set(jedis);
		DataType.zset(jedis);
		
		RedisServer.getIntance().returnResource(jedis);
		
		RedisServer.getIntance().destroy();
	}
	
	private static class DataType{
		
		public static void type(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			Response<String> type = pipeline.type("foo");
			pipeline.sync();
			System.out.println(type.get());
		}
		
		public static void string(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			Response<String> value = pipeline.get("foo");
			pipeline.sync();
			System.out.println(value.get());
			
			//pipeline.append("foo", "new value");
			//pipeline.set("foo", "a");
			value = pipeline.get("foo");
			pipeline.sync();
			
			pipeline.incr("foo");
			System.out.println(value.get());
			
			Response<Boolean> exists = pipeline.exists("foo");
			pipeline.sync();
			System.out.println(exists.get());
		}
		
		public static void hash(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			Response<Map<String, String>> response = pipeline.hgetAll("user:lam");
			pipeline.sync();
			System.out.println(response.get().toString());
			
			jedis.hset("user:lam", "fullname", "xiaomi");
			response = pipeline.hgetAll("user:lam");
			pipeline.sync();
			
			System.out.println(response.get().toString());
		}
		
		public static void list(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			pipeline.lpush("mylist", "d");
			pipeline.lpop("mylist");
			
			Response<List<String>> response = pipeline.lrange("mylist", 0, -1);
			pipeline.sync();
			System.out.println(response.get().toString());
		}
		
		public static void set(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			Response<Set<String>> sets = pipeline.smembers("myset");
			pipeline.sync();
			System.out.println(sets.get().toString());
			
			pipeline.sadd("myset", "2");
			pipeline.sadd("myset", "new one");
			
			sets = pipeline.smembers("myset");
			pipeline.sync();
			System.out.println(sets.get().toString());
		}
		
		public static void zset(Jedis jedis){
			Pipeline pipeline = jedis.pipelined();
			pipeline.zadd("hackers", 1940, "Alan Kay");
			pipeline.zadd("hackers", 1957, "Sophie Wilson");
			pipeline.zadd("hackers", 1953, "Richard Stallman");
			pipeline.zadd("hackers", 1949, "Anita Borg");
			pipeline.zadd("hackers", 1965, "Yukihiro Matsumoto");
			pipeline.zadd("hackers", 1914, "Hedy Lamarr");
		    pipeline.zadd("hackers", 1916, "Claude Shannon");
		    pipeline.zadd("hackers", 1969, "Linus Torvalds");
		    pipeline.zadd("hackers", 1912, "Alan Turing");
		    pipeline.sync();
		    
		    Response<Set<String>> response = pipeline.zrange("hackers", 0, -1);
		    pipeline.sync();
		    for(String r : response.get()){
		    	System.out.println(r);
		    }
		    
		    response = pipeline.zrevrange("hackers", 0, -1);
		    pipeline.sync();
		    for(String r : response.get()){
		    	System.out.println(r);
		    }
		    
		    Response<Set<Tuple>> resp = pipeline.zrangeWithScores("hackers", 0, -1);
		    pipeline.sync();
		    for(Tuple r : resp.get()){
		    	System.out.println(r.getElement() + ", " + r.getScore());
		    }
		}
		
	}

}

redis的命令学习,可查看redis的官方介绍:

http://redis.io/topics/data-types-intro

jedis的API:

http://tool.oschina.net/apidocs/apidoc?api=jedis-2.1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值