java使用redis

来源:互联网 发布:pta编程 编辑:程序博客网 时间:2024/05/22 13:05

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

0 0