
package redis; import java.util.Iterator; import java.util.List; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.SortingParams; public class RedisJava { /** * @param args */ public static void main(String[] args) { Jedis jedis = new Jedis("localhost"); System.out.println("连接redis:"+jedis.ping()); redisHashTest(jedis); //redisSortedSetTest(jedis); //redisSetTest(jedis); //redisListTest(jedis); //redisStringTest(jedis); } public static void redisHashTest(Jedis jedis) { System.out.println("****************"); //清理整个Redis jedis.flushDB(); //添加元素 jedis.hset("user", "name", "张三"); jedis.hset("user", "sex", "男"); jedis.hset("user", "age", "10"); //输出所有值 System.out.println("user:"+jedis.hvals("user")); System.out.println("****************"); //删除某个键值 jedis.hdel("user", "sex"); System.out.println("user:"+jedis.hvals("user")); System.out.println("****************"); //整型键值加数 jedis.hincrBy("user", "age", 10); System.out.println("user:"+jedis.hvals("user")); System.out.println("****************"); //判断某个键值是否存在 System.out.println("user中是否存在age:"+jedis.hexists("user", "sex")); System.out.println("****************"); //批量获取键值 System.out.println("批量获取键值:"+jedis.hmget("user", "name","age")); } public static void redisSortedSetTest(Jedis jedis) { System.out.println("****************"); //清理整个Redis jedis.flushDB(); //添加元素 jedis.zadd("score", 1.0, "100"); jedis.zadd("score", 2.0, "90"); jedis.zadd("score", 6.0, "80"); jedis.zadd("score", 7.0, "70"); jedis.zadd("score", 4.0, "60"); System.out.println("score的元素:"+jedis.zrange("score", 0, -1)); //删除元素 jedis.zrem("score", "60"); System.out.println("score的元素:"+jedis.zrange("score", 0, -1)); //获取元素个数 System.out.println("score的元素个数:"+jedis.zcard("score")); //获取指定权重的元素 System.out.println("score的元素个数:"+jedis.zcount("score", 1.0, 3.0)); //获取指定元素的权重 System.out.println("80的权重:"+jedis.zscore("score", "80")); //获取指定下标的元素 System.out.println("指定下标的元素:"+jedis.zrange("score", 1, 2)); } public static void redisSetTest(Jedis jedis) { System.out.println("****************"); //清理整个Redis jedis.flushDB(); //添加元素 jedis.sadd("num", "1"); jedis.sadd("num", "2"); jedis.sadd("num", "3"); jedis.sadd("num", "4"); jedis.sadd("num", "5"); System.out.println("num的元素:"+jedis.smembers("num")); System.out.println("****************"); //删除指定集合内元素 jedis.srem("num", "3"); System.out.println("num删除后的元素:"+jedis.smembers("num")); //判断某个元素是否在指定集合内 System.out.println("4是否在num内:"+jedis.sismember("num", "4")); //交集并集 jedis.sadd("code", "4"); jedis.sadd("code", "5"); jedis.sadd("code", "6"); jedis.sadd("code", "7"); jedis.sadd("code", "8"); System.out.println("num与code的交集:"+jedis.sinter("num","code")); System.out.println("num与code的并集:"+jedis.sunion("num","code")); System.out.println("num与code的差集:"+jedis.sdiff("num","code")); } public static void redisListTest(Jedis jedis) { System.out.println("****************"); //清理整个Redis jedis.flushDB(); //添加到左边 jedis.lpush("user", "李四"); jedis.lpush("user", "张三"); //添加到右边 jedis.lpush("user", "王五"); jedis.lpush("user", "赵六"); //获取指定位置的元素,可以用于分页,-1获取所有,其他获取指定位置数 System.out.println(jedis.lrange("user", 0, -1)); System.out.println("****************"); //删除最左边的元素 jedis.lpop("user"); //删除最右边的元素 jedis.rpop("user"); System.out.println("执行删除动作后的元素:"+jedis.lrange("user", 0, -1)); System.out.println("****************"); //删除重复元素个数,先添加的先删除 jedis.lpush("user", "王五"); jedis.lpush("user", "王五"); jedis.lpush("user", "王五"); System.out.println("执行删除动作前的user元素:"+jedis.lrange("user", 0, -1)); System.out.println("****************"); jedis.lrem("user", 3, "王五"); System.out.println("执行删除动作后的user元素:"+jedis.lrange("user", 0, -1)); System.out.println("****************"); //删除指定区间外的元素 jedis.rpush("num", "1"); jedis.rpush("num", "2"); jedis.rpush("num", "3"); jedis.rpush("num", "4"); jedis.rpush("num", "5"); System.out.println("执行删除动作前的num元素:"+jedis.lrange("num", 0, -1)); System.out.println("****************"); jedis.ltrim("num", 1, 2); System.out.println("执行删除动作后的num元素:"+jedis.lrange("num", 0, -1)); //更改列表中指定元素值 jedis.lset("num", 1, "4"); System.out.println("执行更改动作后的num元素:"+jedis.lrange("num", 0, -1)); //获取list长度 System.out.println("num集合长度:"+jedis.llen("num")); //获取下标为1的元素 System.out.println("num中下标为1的元素"+jedis.lindex("num", 1)); //排序 jedis.rpush("num", "1"); jedis.rpush("num", "5"); jedis.rpush("num", "3"); jedis.rpush("num", "6"); System.out.println("排序前num的元素:"+jedis.lrange("num", 0, -1)); SortingParams sortingParameters = new SortingParams(); sortingParameters.alpha(); sortingParameters.limit(0, -1); System.out.println("排序后num的元素:"+jedis.sort("num", sortingParameters)); } public static void redisStringTest(Jedis jedis) { System.out.println("****************"); //清理整个Redis jedis.flushDB(); //存入键值对 jedis.set("name", "张三"); System.out.println("获取name:"+jedis.get("name")); System.out.println("****************"); //判断键值是否存在 System.out.println("判断name是否存在:"+jedis.exists("name")); //移除键值对 jedis.del("name"); //设置键值对失效时间为2秒 jedis.expire("username", 2); try { Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); } System.out.println("3秒后username是否存在:"+jedis.exists("username")); System.out.println("****************"); //查找某键值 jedis.set("usersex", "男"); Set<String> keys = jedis.keys("usersex"); for (String key:keys) { System.out.println(key); } //查找某键值生存剩余时间 System.out.println("键值usersex生存剩余时间:"+jedis.ttl("usersex")); System.out.println("****************"); //一次性存入多个键值 jedis.mset("user","张三","sex","男","age","6"); //一次性获取多个键值 System.out.println(jedis.mget("user","sex","age")); System.out.println("****************"); //在原来的value后面进行追加 jedis.append("user", "琪"); System.out.println(jedis.mget("user","sex","age")); System.out.println("****************"); //截取指定key的value System.out.println(jedis.getrange("user", 0, 2)); //key值存在时添加,不存在时不处理 jedis.setnx("user", "李四"); } }