Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~
🌱🌱个人主页:奋斗的明志
🌱🌱所属专栏:Redis
📚本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为展示我的学习过程及理解。文笔、排版拙劣,望见谅。
基础操作(通用命令)
一、set 和 get
public static void testGetSet(Jedis jedis) {
System.out.println("set 和 get 的使用:");
//先清空数据库
//要避免上一组测试的残留数据影响到下一组测试的结果
//清空当前数据库
jedis.flushDB();
//清空所有数据库
jedis.flushAll();
jedis.set("key","111");
jedis.set("key2","222");
//用于构建 Redis 的 SET 命令参数
SetParams params = new SetParams();
//设置超时时间
params.ex(10);
//仅在键不存在时操作
//params.nx();
//xx():仅在键已存在时操作
params.xx();
jedis.set("key","333",params);
String value = jedis.get("key");
System.out.println("value = " + value);
}
二、exists 和 del(判断是否存在和删除)
public static void test2(Jedis jedis){
System.out.println("existe 和 del 的使用");
jedis.flushAll();
jedis.set("key","111");
jedis.set("key2","222");
jedis.set("key3","222");
boolean result = jedis.exists("key");
System.out.println("result = " + result);
long result2 = jedis.del("key");
System.out.println("result2 = " + result2);
result = jedis.exists("key");
System.out.println("result = " + result);
result2 = jedis.del("key", "key2", "key3");
System.out.println("result2 = " + result2);
}
三、keys
public static void test3(Jedis jedis){
System.out.println("keys 的使用");
jedis.flushAll();
jedis.set("key","111");
jedis.set("key2","222");
jedis.set("key3","333");
jedis.set("key4","444");
//redis 中的 key 不能重复,不用在意顺序,用set来接收
Set<String> keys = jedis.keys("*");
System.out.println(keys);
}
四、expire 和 ttl (设置时间和查看时间)
public static void test4(Jedis jedis){
System.out.println("expire 和 ttl 的使用");
jedis.flushAll();
jedis.set("key","111");
jedis.expire("key",10);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
long time = jedis.ttl("key");
System.out.println("time = " + time);
}
五、type(查看类型)
public static void test5(Jedis jedis){
System.out.println("type 的使用");
jedis.flushAll();
jedis.set("key","111");
String type = jedis.type("key");
System.out.println("type = " + type);
jedis.lpush("key2","222");
type = jedis.type("key2");
System.out.println("type = " + type);
jedis.hset("key3","f1","111");
type = jedis.type("key3");
System.out.println("type = " + type);
jedis.sadd("key4","111","222","333");
type = jedis.type("key4");
System.out.println("type = " + type);
jedis.zadd("key5",10,"zhangsan");
type = jedis.type("key5");
System.out.println("type = " + type);
}
字符串操作
一、mset 和 mget(批量操作的)
public static void test1(Jedis jedis) {
System.out.println("mset 和 mget");
//MGET 和 MSET 是用于批量操作键值对的命令,能够有效提升操作效率
jedis.flushAll();
jedis.mset("key1","111","key2","222","key3","333");
//value 值可以重复,用list进行存储
List<String> values = jedis.mget("key1", "key2", "key3");
System.out.println("values = " + values);
}
二、getrange 和 setrange(闭区间)
public static void test2(Jedis jedis) {
System.out.println("getrange 和 setrange");
jedis.flushAll();
jedis.set("key","zxcvbnm");
String result = jedis.getrange("key", 0, 1);
System.out.println("result = " + result);
jedis.setrange("key", 0, "ab");
String value = jedis.get("key");
System.out.println("value = " + value);
}
三、append
public static void test3(Jedis jedis) {
System.out.println("append");
jedis.flushAll();
jedis.set("key","zxcvbnm");
jedis.append("key","asdfghjk");
String value = jedis.get("key");
System.out.println("value = " + value);
}
四、incr 和 decr(自增和自减)
public static void test4(Jedis jedis) {
System.out.println("incr 和 decr");
jedis.flushAll();
jedis.set("key","100");
long result = jedis.incr("key");
System.out.println("result = " + result);
String value = jedis.get("key");
System.out.println("value = " + value);
result = jedis.decr("key");
System.out.println("result = " + result);
value = jedis.get("key");
System.out.println("value = " + value);
}
列表操作
一、lpush 和 lrange
public static void test01(Jedis jedis) {
System.out.println("lpush 和 lrange");
jedis.flushAll();
//头插
jedis.lpush("key", "111", "222", "333");
//可以支持负数
List<String> result = jedis.lrange("key", 0, -1);
System.out.println("result = " + result);
}
二、rpush(尾插)
public static void test02(Jedis jedis) {
System.out.println("rpush 尾插");
jedis.flushAll();
jedis.rpush("key", "111", "222", "333");
List<String> result = jedis.lrange("key", 0, -1);
System.out.println("result = " + result);
}
三、lpop(头删)
public static void test03(Jedis jedis) {
System.out.println("lpop");
jedis.flushAll();
jedis.rpush("key", "111", "222", "333");
String result = jedis.lpop("key");
System.out.println("result = " + result);
result = jedis.lpop("key");
System.out.println("result = " + result);
result = jedis.lpop("key");
System.out.println("result = " + result);
result = jedis.lpop("key");
System.out.println("result = " + result);
}
四、rpop(尾删)
public static void test04(Jedis jedis){
System.out.println("rpop");
jedis.flushAll();
jedis.rpush("key", "111", "222", "333");
String result = jedis.rpop("key");
System.out.println("result = " + result);
result = jedis.rpop("key");
System.out.println("result = " + result);
result = jedis.rpop("key");
System.out.println("result = " + result);
result = jedis.rpop("key");
System.out.println("result = " + result);
}
五、blpop (带有阻塞时间等待的删除)
public static void test05(Jedis jedis){
System.out.println("blpop");
jedis.flushAll();
jedis.lpush("key","111","222","333");
List<String> results = jedis.blpop(100, "key");
System.out.println("key:" + results.get(0));
System.out.println("value:" + results.get(1));
}
六、llen
public static void test06(Jedis jedis){
System.out.println("llen");
jedis.flushAll();
jedis.lpush("key","111","222","333");
long result = jedis.llen("key");
System.out.println("result = " + result);
}
集合操作
一、sadd 和 smembers
public static void test01(Jedis jedis) {
System.out.println("sadd 和 smembers");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333");
Set<String> result = jedis.smembers("key");
System.out.println("result: " + result);
}
二、srem 和 sismember
public static void test02(Jedis jedis) {
System.out.println("srem 和 sismember");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333");
boolean result = jedis.sismember("key", "111");
System.out.println("result: " + result);
long key = jedis.srem("key", "111", "222");
System.out.println("key:" + key);
result = jedis.sismember("key", "222");
System.out.println("result: " + result);
}
三、scard
public static void test03(Jedis jedis) {
System.out.println("里面有几个元素 (scard)");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333", "444", "555");
long result = jedis.scard("key");
System.out.println("result: " + result);
}
四、spop
public static void test04(Jedis jedis) {
System.out.println("随机删除一个元素 (spop)");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333", "444", "555");
String result = jedis.spop("key");
System.out.println("result: " + result);
}
五、sinter
public static void test05(Jedis jedis) {
System.out.println("求交集 (sinter)");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333");
jedis.sadd("key2", "111", "222", "444");
Set<String> result = jedis.sinter("key", "key2");
System.out.println("result: " + result);
}
六、sinterstore
public static void test06(Jedis jedis) {
System.out.println("求交集合并到一个新的键里面 (sinterstore)");
jedis.flushAll();
jedis.sadd("key", "111", "222", "333");
jedis.sadd("key2", "111", "222", "444");
long len = jedis.sinterstore("key3", "key", "key2");
System.out.println("len:" + len);
Set<String> result = jedis.smembers("key3");
System.out.println("result: " + result);
}
哈希表操作
一、hset 和 hget
public static void test01(Jedis jedis) {
System.out.println("hset 和 hget");
jedis.flushAll();
jedis.hset("key", "f1", "111");
Map<String, String> map = new HashMap<>();
map.put("f2", "222");
map.put("f3", "333");
jedis.hset("key", map);
String result = jedis.hget("key", "f1");
System.out.println("result:" + result);
result = jedis.hget("key", "f2");
System.out.println("result:" + result);
result = jedis.hget("key", "f100");
System.out.println("result:" + result);
}
二、hexists
public static void test02(Jedis jedis) {
System.out.println("判断是否存在 hexists");
jedis.flushAll();
jedis.hset("key", "f1", "111");
jedis.hset("key", "f2", "111");
jedis.hset("key", "f3", "111");
boolean result = jedis.hexists("key", "f1");
System.out.println("result:" + result);
result = jedis.hexists("key", "f100");
System.out.println("result:" + result);
}
三、hdel
public static void test03(Jedis jedis) {
System.out.println("删除操作 hdel");
jedis.flushAll();
jedis.hset("key", "f1", "111");
jedis.hset("key", "f2", "111");
jedis.hset("key", "f3", "111");
long result = jedis.hdel("key", "f1", "f2");
System.out.println("result:" + result);
boolean hexists = jedis.hexists("key", "f1");
System.out.println("hexists:" + hexists);
hexists = jedis.hexists("key", "f2");
System.out.println("hexists:" + hexists);
hexists = jedis.hexists("key", "f3");
System.out.println("hexists:" + hexists);
}
四、hkeys 和 hvals
public static void test04(Jedis jedis) {
System.out.println("hkeys 和 hvals");
jedis.flushAll();
jedis.hset("key", "f1", "111");
jedis.hset("key", "f2", "111");
jedis.hset("key", "f3", "111");
Set<String> hkeys = jedis.hkeys("key");
List<String> hvals = jedis.hvals("key");
System.out.println("hvals:" + hkeys);
System.out.println("hvals:" + hvals);
}
五、hmget 和 hmset
public static void test05(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> hmget = jedis.hmget("key", "f1", "f2", "f3");
System.out.println("hmget:" + hmget);
}
有序集合操作
一、zadd 和 zrange
public static void test01(Jedis jedis) {
System.out.println("zadd 和 zrange");
jedis.flushAll();
jedis.zadd("key", 10, "zhangsan");
Map<String, Double> map = new HashMap<>();
map.put("lisi", 20.0);
map.put("wangwu", 30.0);
jedis.zadd("key", map);
List<String> members = jedis.zrange("key", 0, -1);
System.out.println("members:" + members);
List<Tuple> zrangedWithScores = jedis.zrangeWithScores("key", 0, -1);
System.out.println("zrangedWithScores = " + zrangedWithScores);
String element = zrangedWithScores.get(0).getElement();
double score = zrangedWithScores.get(0).getScore();
System.out.println("element:" + element + ", score:" + score);
}
二、zcard
public static void test02(Jedis jedis) {
System.out.println("zcard");
jedis.flushAll();
jedis.zadd("key", 10, "zhangsan");
jedis.zadd("key", 20, "lisi");
jedis.zadd("key", 30, "wangwu");
long len = jedis.zcard("key");
System.out.println("len:" + len);
}
三、zrem
public static void test03(Jedis jedis) {
System.out.println("zrem");
jedis.flushAll();
jedis.zadd("key", 10, "zhangsan");
jedis.zadd("key", 20, "lisi");
jedis.zadd("key", 30, "wangwu");
long n = jedis.zrem("key", "zhangsan");
System.out.println("n:" + n);
List<String> result = jedis.zrange("key", 0, -1);
System.out.println("result:" + result);
}
四、zscore
public static void test04(Jedis jedis) {
System.out.println("zscore");
jedis.flushAll();
jedis.zadd("key", 10, "zhangsan");
jedis.zadd("key", 20, "lisi");
jedis.zadd("key", 30, "wangwu");
Double zscore = jedis.zscore("key", "zhangsan");
System.out.println("zscore:" + zscore);
}
五、zrank
public static void test05(Jedis jedis) {
System.out.println("获取下标(排名) zrank");
jedis.flushAll();
jedis.zadd("key", 10, "zhangsan");
jedis.zadd("key", 20, "lisi");
jedis.zadd("key", 30, "wangwu");
Long zrank = jedis.zrank("key", "zhangsan");
System.out.println("zrank:" + zrank);
}