看了一部分资料,大家推荐使用 spring-data-redis (spring在jedis的基础上又包装了一层),但是实际中感觉写起来有点麻烦,不如原生态的jedis好用。
Redis使用c语言编写,面向“键/值”对类型数据的分布式NoSql数据库系统。 目前提供五中数据类型 string(字符串) list(链表) Hash(哈希) set(集合) zset(sorted set 有序集合),有2中编码类型:ziplist,skiplist,当zset中数据较多时,将会被重构为skiplist。 默认端口6379 先写一个Test类,测一下redis的基本数据类型和jedis的一些常用方法。以下的测试方法也都是从网上看到的,只不过为了验证是否准确以及jar包版本的问题,我自己亲自敲了一遍。
public class Test { public static void main(String[] args) { // Jedis js = new Jedis("127.0.0.1", 6379); // js.set("key001", "redis001"); // String val = js.get("key001"); // System.out.println(val); // js.del("key001"); /**************************测试Redis的数据类型**************************/ /** * list */ // js.rpush("list1", "aaaaaaaaaaaaaaaaaaaaaa"); // js.rpush("list1", "bbbbbbbbbbbbbbbbbbbbbb"); // js.rpush("list1", "ccccccccccccccccccccc"); // js.rpush("list1", "dddddddddddddd"); // List vals = js.lrange("list1", 0, -1); // for (int i = 0; i < vals.size(); i++) { // System.out.println(vals.get(i)); // } /** * set 无须唯一 */ // js.sadd("s1", "顺序3"); // js.sadd("s1", "a"); // js.sadd("s1", "b"); // js.sadd("s1", "1"); // js.sadd("s1", "蛤蛤蛤"); // js.sadd("s1", "2"); // js.sadd("s1", "so waht?"); // js.sadd("s1", "%^"); // js.sadd("s1", "顺序1"); // js.sadd("s1", "乱码吗?"); // js.sadd("s1", "顺序2"); // Set s = js.smembers("s1"); // for (String string : s) { // System.out.println(s); // } // js.srem("s1", "蛤蛤蛤"); /** * zset(sorted set 有序集合) * 有2中编码类型:ziplist,skiplist,当zset中数据较多时,将会被重构为skiplist */ // js.zadd("zs", 92, "张三1"); // js.zadd("zs", 93, "张三7"); // js.zadd("zs", 94, "张三5"); // js.zadd("zs", 87, "张三9"); // js.zadd("zs", 66, "张三"); // js.zadd("zs", 19, "张三0"); // Set sets = js.zrange("zs", 0, -1); // for (String string : sets) { // System.out.println(sets); // } /** * Hash */ // Map m = new HashMap(); // m.put("1", "t"); // m.put("2", "ttt"); // m.put("username", "老王"); // m.put("password", "123456"); // m.put("age", "79"); // m.put("sex", "man"); // js.hmset("m", m); // List v = js.hmget("m", new String[]{"username","age"}); // List v1 = js.hmget("m", "sex"); // System.out.println(v); // System.out.println(v1); // js.hdel("m", "username");//删除map中的某一个键的键值对 /**************************事务控制**************************/ /** * 事务方式(Transactions) * 他主要目的是保障,一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令。 * * 我们调用jedis.watch(…)方法来监控key,如果调用后key值发生变化,则整个事务会执行失败。 * 另外,事务中某个操作失败,并不会回滚其他操作。这一点需要注意。 * 还有,我们可以使用discard()方法来取消事务。 */ // Jedis js1 = new Jedis("127.0.0.1", 6379); // long s = System.currentTimeMillis(); // Transaction tx = js1.multi(); // for (int i = 0; i < 99999; i++) { // tx.set("keyttt"+i, "valttt"+i); // } // List