使用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