Redis 笔记之 Java 操作 Redis(Jedis)

jedis.close();

}

@Test

public void testKeys() {

// 删除一个key

jedis.del(“name”);

// 删除多个key

jedis.del(“name”, “age”);

// 设置一个key

jedis.set(“age”, “hello”);

// 判断一个key是否存在

Boolean name = jedis.exists(“name”);

System.out.println(name);

// 设置一个key超时时间

Long age = jedis.expire(“age”, 100);

System.out.println(age);

// 获取一个key超时时间

Long ttl = jedis.ttl(“age”);

System.out.println(ttl);

// 随机获取一个key

String s = jedis.randomKey();

// 修改key名称

jedis.rename(“age”, “newage”);

// 查看对应值的类型

String type1 = jedis.type(“name”);

System.out.println(type1);

String type2 = jedis.type(“maps”);

System.out.println(type2);

}

}

操作 String 相关 API

===================================================================================

| 命令 | 说明 |

| — | — |

| set | 设置一个key/value |

| get | 根据key获得对应的value |

| mset | 一次设置多个key value |

| mget | 一次获得多个key的value |

| getset | 获得原始key的值,同时设置新值 |

| strlen | 获得对应key存储value的长度 |

| append | 为对应key的value追加内容 |

| getrange 索引0开始 | 截取value的内容 |

| setex | 设置一个key存活的有效期(秒) |

| psetex | 设置一个key存活的有效期(毫秒) |

| setnx | 存在不做任何操作,不存在添加 |

| msetnx原子操作(只要有一个存在不做任何操作) | 可以同时设置多个key,只要有一个存在都不保存 |

| decr | 进行数值类型的-1操作 |

| decrby | 根据提供的数据进行减法操作 |

| incr | 进行数值类型的+1操作 |

| incrby | 根据提供的数据进行加法操作 |

| incrbyfloat | 根据提供的数据加入浮点数 |

public class TestString {

private Jedis jedis;

@Before

public void before() {

jedis = new Jedis(“192.168.3.65”, 6379);

}

@After

public void after() {

jedis.close();

}

@Test

public void testString() {

jedis.set(“name”, “zhenyu”); // set

String name = jedis.get(“name”); // get

System.out.println(name);

jedis.mset(“content”, “好人”, “address”, “苏州市”); // mset

List mget = jedis.mget(“name”, “content”, “address”); // mget

mget.forEach(v -> System.out.println("v = " + v));

String set = jedis.getSet(“name”, “yusael”);

System.out.println(set);

// …

}

}

操作 List 相关 API

=================================================================================

| 命令 | 说明 |

| — | — |

| lpush | 将某个值加入到一个key列表头部 |

| lpushx | 同lpush,但是必须要保证这个key存在 |

| rpush | 将某个值加入到一个key列表末尾 |

| rpushx | 同rpush,但是必须要保证这个key存在 |

| lpop | 返回和移除列表左边的第一个元素 |

| rpop | 返回和移除列表右边的第一个元素 |

| lrange | 获取某一个下标区间内的元素 |

| llen | 获取列表元素个数 |

| lset | 设置某一个指定索引的值(索引必须存在) |

| lindex | 获取某一个指定索引位置的元素 |

| lrem | 删除重复元素 |

| ltrim | 保留列表中特定区间内的元素 |

| linsert | 在某一个元素之前,之后插入新元素 |

public class TestList {

private Jedis jedis;

@Before

public void before() {

jedis = new Jedis(“192.168.3.65”, 6379);

}

@After

public void after() {

jedis.close();

}

@Test

public void testList() {

jedis.flushDB(); // 清除当前数据库

jedis.lpush(“names1”, “1”, “2”, “3”, “4”, “5”); // lpush

jedis.rpush(“names1”, “a”, “b”, “c”, “d”, “e”); // rpush

List names1 = jedis.lrange(“names1”, 0, -1);

names1.forEach(v -> System.out.println("name = " + v));

String name = jedis.lpop(“names1”); // lpop rpop

System.out.println(name); // 5

System.out.println(jedis.llen(“names1”)); // llen

// names1 中 2 左边插入一个 world

Long linsert = jedis.linsert(“names1”, BinaryClient.LIST_POSITION.BEFORE, “2”, “world”);// linsert

System.out.println("linsert: " + linsert);

names1 = jedis.lrange(“names1”, 0, -1);

names1.forEach(v -> System.out.println("name = " + v));

// …

}

}

操作 Set 的相关 API

=================================================================================

| 命令 | 说明 |

| — | — |

| sadd | 为集合添加元素 |

| smembers | 显示集合中所有元素 无序 |

| scard | 返回集合中元素的个数 |

| spop | 随机返回一个元素 并将元素在集合中删除 |

| smove | 从一个集合中向另一个集合移动元素 必须是同一种类型 |

| srem | 从集合中删除一个元素 |

| sismember | 判断一个集合中是否含有这个元素 |

| srandmember | 随机返回元素 |

| sdiff | 去掉第一个集合中其它集合含有的相同元素 |

| sinter | 求交集 |

| sunion | 求和集 |

public class TestSet {

private Jedis jedis;

@Before

public void before() {

jedis = new Jedis(“192.168.3.65”, 6379);

}

@After

public void after() {

jedis.close();

}

@Test

public void testSet() {

jedis.sadd(“names”,“zhangsan”, “lisi”);

Set names = jedis.smembers(“names”);

names.forEach(v -> System.out.println("v = " + v));

Boolean sismember = jedis.sismember(“names”, “zhenyu”);

System.out.println(sismember);

}

}

操作 ZSet 相关 API

=================================================================================

| 命令 | 说明 |

| — | — |

| zadd | 添加一个有序集合元素 |

| zcard | 返回集合的元素个数 |

| zrange 升序 zrevrange 降序 | 返回一个范围内的元素 |

| zrangebyscore | 按照分数查找一个范围内的元素 |

| zrank | 返回排名 |

| zrevrank | 倒序排名 |

| zscore | 显示某一个元素的分数 |

| zrem | 移除某一个元素 |

| zincrby | 给某个特定元素加分 |

public class TestZSet {

private Jedis jedis;

@Before

public void before() {

jedis = new Jedis(“192.168.3.65”, 6379);

}

@After

public void after() {

jedis.close();

}

@Test

public void testZSet() {

jedis.zadd(“zset”, 8, “张三”);

jedis.zadd(“zset”, 5, “李四”);

jedis.zadd(“zset”, 7, “王五”);

jedis.zadd(“zset”, 2, “赵六”);

jedis.zadd(“zset”, 33, “Win7”);

jedis.zadd(“zset”, 6, “Win8”);

jedis.zadd(“zset”, 77, “Win9”);

Set names = jedis.zrange(“zset”, 0, -1);

names.forEach(v -> System.out.println(“v = " + v +”, zscore = " + jedis.zscore(“zset”, v)));

Long zcard = jedis.zcard(“zset”);

System.out.println(zcard);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
dnimg.cn/images/e5c14a7895254671a72faed303032d36.jpg" alt=“img” style=“zoom: 33%;” />

完结

Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。

Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

[外链图片转存中…(img-zywYWyHe-1712057194608)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值