Redis maven项目 jedis 客户端操作(二)
(1)List类型value的方法调用样例,包含lpush,lrange,lpop,rpop,blpop,llen
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.util.List;
public class RedisDemoList {
public static void test1(Jedis jedis) {
System.out.println("lpush lrange:");
jedis.flushAll();
jedis.lpush("key","1","2","3","4","5","6","7","8","9");
List<String> list = jedis.lrange("key",0,-1);
System.out.println(list);
}
public static void test2(Jedis jedis) {
System.out.println("rpush:");
jedis.flushAll();
jedis.rpush("key","1","2","3","4","5");
List<String> list = jedis.lrange("key",0,-1);
System.out.println(list);
}
public static void test3(Jedis jedis) {
System.out.println("lpop:");
jedis.flushAll();
jedis.rpush("key","1","2","3","4","5");
List<String> list = jedis.lrange("key",0,-1);
System.out.println(list);
String result=jedis.lpop("key");
list = jedis.lrange("key",0,-1);
System.out.println(list);
for (int i = 0; i < 5; i++) {
String x = jedis.lpop("key");
System.out.println(x);
}
}
public static void test4(Jedis jedis) {
System.out.println("rpop:");
jedis.flushAll();
jedis.rpush("key","1","2","3","4","5");
for (int i = 0; i < 6; i++) {
String x = jedis.rpop("key");
System.out.println(x);
}
}
public static void test5(Jedis jedis) {
System.out.println("blpop:");
jedis.flushAll();
//返回结果是二元组,第一个是弹出的哪个key,第二个是弹出的value
List<String>result =jedis.blpop(100,"key");
System.out.println(result.get(0));
System.out.println(result.get(1));
}
public static void test6(Jedis jedis) {
System.out.println("llen:");
jedis.flushAll();
jedis.rpush("key","1","2","3","4","5");
long length=jedis.llen("key");
System.out.println(length);
}
public static void main(String[] args) {
JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
try (Jedis jedis = jedisPool.getResource()) {
test6(jedis);
}
}
}
(2)hash类型value的方法调用,包含hset,hget,hexists,hdel,hkeys,hvals,hmget,hmset:
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class RedisDemoHash {
public static void test1(Jedis jedis) {
System.out.println("hset 和 hget :");
jedis.flushAll();
jedis.hset("key","f1","111");
Map<String,String> fields = new HashMap<String, String>();
fields.put("f2","222");
fields.put("f3","333");
jedis.hset("key",fields);
String result =jedis.hget("key","f1");
System.out.println(result);
result = jedis.hget("key","f2");
System.out.println(result);
result = jedis.hget("key","f100");
System.out.println(result);
}
public static void test2(Jedis jedis) {
System.out.println("hexists :");
jedis.flushAll();
jedis.hset("key","f1","111");
jedis.hset("key","f2","222");
jedis.hset("key","f3","333");
boolean result = jedis.hexists("key","f1");
System.out.println(result);
result = jedis.hexists("key","f100");
System.out.println(result);
}
public static void test3(Jedis jedis) {
System.out.println("hdel :");
jedis.flushAll();
jedis.hset("key","f1","111");
jedis.hset("key","f2","222");
jedis.hset("key","f3","333");
long count = jedis.hdel("key","f1","f2");
System.out.println(count);
boolean result = jedis.hexists("key","f1");
System.out.println(result);
result = jedis.hexists("key","f3");
System.out.println(result);
}
public static void test4(Jedis jedis) {
System.out.println("hkeys 和 hvals");
jedis.flushAll();
jedis.hset("key","f1","111");
jedis.hset("key","f2","222");
jedis.hset("key","f3","333");
Set<String> keys = jedis.hkeys("key");
System.out.println(keys);
List<String> values = jedis.hvals("key");
System.out.println(values);
}
public static void test5(Jedis jedis) {
System.out.println("hmget 和 hmset :");
jedis.flushAll();
Map<String,String> map = new HashMap<>();
map.put("f1","111");
map.put("f2","222");
map.put("f3","333");
jedis.hmset("key",map);
List<String> values = jedis.hmget("key","f1","f2","f3");
System.out.println(values);
}
public static void main(String[] args) {
JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
try (Jedis jedis = jedisPool.getResource()) {
test5(jedis);
}
}
}
(3)Set类型value的方法调用,包含sadd,smembers,sismember,scard,spop,sinter,sinterstore
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.util.Set;
public class RedisDemoSet {
public static void test1(Jedis jedis){
System.out.println("sadd 和 smembers:");
jedis.flushAll();
jedis.sadd("key","1","2","3","4","5","6","7","8","9");
Set<String> set = jedis.smembers("key");
set.forEach(System.out::print);
}
public static void test2(Jedis jedis){
System.out.println("sismember:");
jedis.flushAll();
jedis.sadd("key","1","2","3","4","5","6","7","8","9");
System.out.println(jedis.sismember("key", "111"));
}
public static void test3(Jedis jedis){
System.out.println("scard:");
jedis.flushAll();
jedis.sadd("key","1","2","3","4","5","6","7","8","9");
long count = jedis.scard("key");
System.out.println(count);
}
public static void test4(Jedis jedis){
System.out.println("spop:");
jedis.flushAll();
jedis.sadd("key","1","2","3");
String result = jedis.spop("key");
System.out.println(result);
}
public static void test5(Jedis jedis){
System.out.println("sinter :");
jedis.flushAll();
jedis.sadd("key","1","2","3");
jedis.sadd("key2","1","2","4");
Set<String> result= jedis.sinter("key","key2");
System.out.println(result);
}
public static void test6(Jedis jedis){
System.out.println("sinterstore:");
jedis.flushAll();
jedis.sadd("key","1","2","3","4");
jedis.sadd("key2","1","2","4","5");
jedis.sinterstore("key3","key","key2");
Set<String> result = jedis.smembers("key3");
System.out.println(result);
}
public static void main(String[] args) {
JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
try (Jedis jedis = jedisPool.getResource()) {
test6(jedis);
}
}
}
(4)zset类型value的方法调用,包含zadd,zrange,zcard,zrem,zscore,zrank
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.resps.Tuple;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RedisDemozset {
public static void test1(Jedis jedis){
System.out.println("zadd 和 zrange");
jedis.flushAll();
jedis.zadd("key",99,"kzf");
Map<String,Double>map = new HashMap<>();
map.put("whx",88.0);
map.put("lyz",77.0);
jedis.zadd("key",map);
//这里考虑到zset有序性的特点,所以用List而不是Set,虽然也具有唯一性
List<String> result = jedis.zrange("key",0,-1);
System.out.println(result);
List<Tuple> tuples = jedis.zrangeWithScores("key",0,-1);
System.out.println(tuples);
String member = tuples.get(0).getElement();
Double score = tuples.get(0).getScore();
System.out.println(member);
System.out.println(score);
}
public static void test2(Jedis jedis){
System.out.println("zcard:");
jedis.flushAll();
jedis.zadd("key",99,"kzf");
jedis.zadd("key",88,"whx");
jedis.zadd("key",77,"lyz");
long len = jedis.zcard("key");
System.out.println(len);
}
public static void test3(Jedis jedis){
System.out.println("zrem:");
jedis.flushAll();
jedis.zadd("key",99,"kzf");
jedis.zadd("key",88,"whx");
jedis.zadd("key",77,"lyz");
long result = jedis.zrem("key","whx");
System.out.println(result);
List<Tuple> tuples = jedis.zrangeWithScores("key",0,-1);
System.out.println(tuples);
}
public static void test4(Jedis jedis){
System.out.println("zscore:");
jedis.flushAll();
jedis.zadd("key",99,"kzf");
jedis.zadd("key",88,"whx");
jedis.zadd("key",77,"lyz");
//这里的Double使用包装类,因为可能获取分数的member不存在
//这时候就可以正常返回空值,而不是空指针异常
Double score= jedis.zscore("key","whx");
System.out.println(score);
score = jedis.zscore("key","zzz");
System.out.println(score);
}
public static void test5(Jedis jedis){
System.out.println("zrank:");
jedis.flushAll();
jedis.zadd("key",99,"kzf");
jedis.zadd("key",88,"whx");
jedis.zadd("key",77,"lyz");
//主要rank是从0开始的,不是1,zset默认按分数升序,同分数看member名的字典序
Long rank = jedis.zrank("key","whx");
System.out.println(rank);
}
public static void main(String[] args) {
JedisPool jedisPool = new JedisPool("127.0.0.1", 8888);
try (Jedis jedis = jedisPool.getResource()) {
test5(jedis);
}
}
}
(5)ps
代码中我给出了一些代表我自己理解的注释,并不一定完全正确,我希望的是每个读者都有自己独立思考,辩证思考的能力,如果该注释对你有帮助,我很是开心,如果你认为哪里不太准确,欢迎大佬私聊我,或者发在评论区指出,感恩!!!