Redis在Java 语言的使用 —— 使用 Jedis 测试 redis操纵几种常见数据类型的命令

// 测试 hsetnx

jedis.hsetnx(“car”,“country”,“US”);

System.out.println(jedis.hgetAll(“car”));

// 测试给某一个字段自增

jedis.hincrBy(“car”,“price”,1);

jedis.hincrByFloat(“car”,“price”,0.99);

System.out.println(jedis.hget(“car”,“price”));

// 测试 删除字段

System.out.println(jedis.hdel(“car”, “price”, “non-exist-field”));

}

}

连接成功

服务正在运行: PONG

——————————————————————————————————————————

white

999998

4

{color=white, owner=jsy, price=999998, kind=bmw}

[color, owner, price, kind]

[white, 999998, bmw, jsy]

true

false

{owner=jsy, country=US, color=white, price=999998, kind=bmw}

999999.98999999999068677

1

测试list


import redis.clients.jedis.Jedis;

public class ListInJedis {

public static void main(String[] args) {

Jedis jedis = new Jedis(“localhost”);

System.out.println(“连接成功”);

System.out.println("服务正在运行: "+jedis.ping());

System.out.println(“——————————————————————————————————————————”);

// 先清空一下

jedis.flushAll();

// 测试 lpush、rpush

jedis.lpush(“list”,“2”,“1”);

jedis.rpush(“list”,“3”,“4”);

System.out.println(jedis.lrange(“list”,0,-1));

// 测试删除

jedis.lpop(“list”);

jedis.rpop(“list”);

System.out.println(jedis.llen(“list”));

System.out.println(jedis.lrange(“list”,0,-1));

jedis.lpop(“list”);

jedis.lpop(“list”);

// 此时 list为空

for(int i=0;i<10;i++) jedis.rpush(“list”,“”+i);

System.out.println(jedis.lrange(“list”,0,-1));

// 测试 lrange(key,start,end);

System.out.println(jedis.lrange(“list”,0,-1));

System.out.println(jedis.lrange(“list”,1,2));

System.out.println(jedis.lrange(“list”,3,-2));

// 测试线性表的get、set方法

System.out.println(jedis.lindex(“list”,3));

System.out.println(jedis.lindex(“list”,-2));

jedis.lset(“list”,0,“10”);

System.out.println(jedis.lrange(“list”, 0, -1));

// 测试 list 的删除元素的功能

// 按索引 保留 [start,end]

jedis.ltrim(“list”,3,8);

// 按元素去删

jedis.lrem(“list”,1,“5”);

System.out.println(jedis.lrange(“list”, 0, -1));

}

}

连接成功

服务正在运行: PONG

——————————————————————————————————————————

[1, 2, 3, 4]

2

[2, 3]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 2]

[3, 4, 5, 6, 7, 8]

3

8

[10, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[3, 4, 6, 7, 8]

操纵set


import redis.clients.jedis.Jedis;

import java.util.Set;

public class SetInJedis {

public static void main(String[] args) {

Jedis jedis = new Jedis(“localhost”);

System.out.println(“连接成功”);

System.out.println("服务正在运行: "+jedis.ping());

System.out.println(“——————————————————————————————————————————”);

// 先清空一下

jedis.flushAll();

// 测试 sadd、srem

jedis.sadd(“set”,“1”,“2”,“2”,“3”,“4”);

System.out.println(jedis.smembers(“set”));

jedis.srem(“set”,“2”,“5”);

System.out.println(jedis.smembers(“set”));

// 元素是否在集合中

System.out.println(jedis.sismember(“set”,“2”));

System.out.println(jedis.sismember(“set”,“1”));

// 获取集合元素的个数

System.out.println(jedis.scard(“set”));

// 测试集合的交集、并集、差集

// 几个用于测试集合

jedis.sadd(“set1”,“1”,“2”,“3”);

jedis.sadd(“set2”,“1”,“2”,“4”);

jedis.sadd(“set3”,“2”,“3”,“6”);

// 并集

Set res1 = jedis.sunion(“set1”,“set2”,“set3”);

System.out.println(res1);

// 交集

Set res2 = jedis.sinter(“set1”,“set2”,“set3”);

System.out.println(res2);

// 差集

Set res3 = jedis.sdiff(“set1”,“set2”,“set3”);

System.out.println(res3);

// 集合中间的元算,还可以存储到Redis中。

jedis.sunionstore(“st1”,“set1”,“set2”,“set3”);

jedis.sinterstore(“st2”,“set1”,“set2”,“set3”);

jedis.sdiffstore(“st3”,“set1”,“set2”,“set3”);

System.out.println(jedis.smembers(“st1”));

System.out.println(jedis.smembers(“st2”));

System.out.println(jedis.smembers(“st3”));

}

}

连接成功

服务正在运行: PONG

——————————————————————————————————————————

[1, 2, 3, 4]

[1, 3, 4]

false

true

3

[1, 2, 3, 4, 6]

[2]

[]

[1, 2, 3, 4, 6]

[2]

[]

操纵zset


import redis.clients.jedis.Jedis;

import redis.clients.jedis.Tuple;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

public class ZSetInJedis {

public static void main(String[] args) {

Jedis jedis = new Jedis(“localhost”);

System.out.println(“连接成功”);

System.out.println("服务正在运行: "+jedis.ping());

System.out.println(“——————————————————————————————————————————”);

// 先清空一下

jedis.flushAll();

// 测试有序集合的增加功能

jedis.zadd(“student_score”,100,“张三”);

Map<String,Double> map = new HashMap<>();

map.put(“李四”,80.0);

map.put(“王五”,90.0);

map.put(“陈二”,60.0);

jedis.zadd(“student_score”,map);

// 获取有序集合某个元素的分数、排名

System.out.println(jedis.zscore(“student_score”,“李四”));

System.out.println(jedis.zrank(“student_score”,“李四”));

System.out.println(jedis.zscore(“student_score”,“张三”));

System.out.println(jedis.zrank(“student_score”,“张三”));

// 按名次顺序检索元素(及其分数)

System.out.println();

System.out.println(“按名次顺序检索元素(及其分数) ——————————————————————\n”);

// 返回 索引 [0,2]的元素

System.out.println(jedis.zrange(“student_score”,0,2));

// 返回 索引 [1,3]的元素及分数

Set s = jedis.zrangeWithScores(“student_score”,1,3);

for(Tuple tuple:s){

System.out.println(“元素: “+tuple.getElement()+” 分数:”+tuple.getScore());

}

// 降序返回

System.out.println(jedis.zrevrange(“student_score”, 0, 2));

System.out.println(jedis.zrevrangeWithScores(“student_score”, 1, 3));

// 按分数范围检索元素

System.out.println();

System.out.println(“按分数范围检索元素 ———————————————————— \n”);

// 获取分数在 [80,100]的元素

System.out.println(jedis.zrangeByScore(“student_score”,80,100));

// 降序返回

System.out.println(jedis.zrevrangeByScore(“student_score”, 100, 80));

// 获取分数在 [80,100]的元素(包括分数)

System.out.println(jedis.zrangeByScoreWithScores(“student_score”,80,100));

// 降序返回

System.out.println(jedis.zrevrangeByScoreWithScores(“student_score”,100,80));

// 返回分数大于等于70的,从第2个元素开始,且不超过2个元素,

System.out.println(jedis.zrangeByScoreWithScores(“student_score”,70,Integer.MAX_VALUE,1,2));

// 返回有序集合的基数

System.out.println(jedis.zcard(“student_score”));

// 统计分数在 [min,max]的元素的个数

System.out.println(jedis.zcount(“student_score”, 75, 95));

// 测试 删除元素的功能

System.out.println(“直接删除、按排名范围删除、按分数范围删除”);

System.out.println("当前有元素: "+jedis.zrangeWithScores(“student_score”,0,-1));

// 直接删除

jedis.zrem(“student_score”,“张三”);

System.out.println(jedis.zrangeWithScores(“student_score”,0,-1));

// 按照排名范围删除

jedis.zremrangeByRank(“student_score”,1,1);

System.out.println(jedis.zrangeWithScores(“student_score”,0,-1));

// 按分数范围删除

jedis.zremrangeByScore(“student_score”,70,95);

System.out.println(jedis.zrangeWithScores(“student_score”,0,-1));

// 有序集合的集合之间的操作 ( 并、交、差 ) 类似 集合之间的操作,这里略去

}

}

连接成功

服务正在运行: PONG

——————————————————————————————————————————

80.0

1

100.0

3

按名次顺序检索元素(及其分数) ——————————————————————

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

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

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

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

面试真题

Spring源码笔记

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

72771)]

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

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-p10Ti1Cw-1712663672772)]

总结

在这里,由于面试中MySQL问的比较多,因此也就在此以MySQL为例为大家总结分享。但是你要学习的往往不止这一点,还有一些主流框架的使用,Spring源码的学习,Mybatis源码的学习等等都是需要掌握的,我也把这些知识点都整理起来了

[外链图片转存中…(img-mFAxIc6A-1712663672772)]

[外链图片转存中…(img-JKdtasrb-1712663672773)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-z7IpMwye-1712663672773)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值