• 【Redis】Java连接Redis及Java操作Redis常用数据类型


    一,Java连接Redis

    1.1 连接前端服务器

    打开RedisDesktopManager并连接Redis

    不知道可看我上一篇文章:

    【Redis】安装(Linux&window)及Redis的常用命令-CSDN博客

    1.2 后端依赖

    导入相关的jedis依赖

    注意:要在dependencies标签中导入

    pom.xml:

    1. <dependency>
    2. <groupId>redis.clientsgroupId>
    3. <artifactId>jedisartifactId>
    4. <version>2.9.0version>
    5. dependency>

    1.3 Java连接

    创建一个类,里面写连接Redis的相关代码

    1. public class Redis {
    2. public static void main(String[] args) {
    3. //建立与数据库连接
    4. Jedis jedis= new Jedis("localhost",6379);
    5. //设置密码
    6. jedis.auth("123456");
    7. //测试是否连接上
    8. System.out.println(jedis.ping());
    9. }
    10. }

    如果运行显示PONG即可表明连接成功 

    二,Java操作Redis常用类型数据

    2.1 Redis字符串(String)

    1. package com.zking.ssm.common;
    2. import redis.clients.jedis.Jedis;
    3. /**
    4. * @Name BingBing
    5. * @company zking cy
    6. * @create 2023-11-03-18:04
    7. */
    8. public class Redis_ml {
    9. public static void main(String[] args) {
    10. //建立与数据库连接
    11. Jedis jedis = new Jedis("localhost", 6379);
    12. //设置密码
    13. jedis.auth("123456");
    14. //测试是否连接上
    15. System.out.println(jedis.ping());
    16. //String的相关操作
    17. //连接第七个数据库
    18. jedis.select(3);
    19. // 存值
    20. jedis.set("uname","帅哥");
    21. // 取值
    22. System.out.println(jedis.get("uname"));
    23. // 设置该hobby多久后自动删除
    24. jedis.setex("hobby",25,"game");
    25. // 查看剩余时间
    26. System.out.println(jedis.ttl("hobby"));
    27. // 修改值
    28. jedis.set("uname","美男子");
    29. System.out.println(jedis.get("uname"));
    30. // 删除值
    31. // System.out.println(jedis.del("uname"));
    32. }
    33. }

    2.2 Redis哈希(Hash)

    1. package com.zking.ssm.common;
    2. import redis.clients.jedis.Jedis;
    3. /**
    4. * @Name BingBing
    5. * @company zking cy
    6. * @create 2023-11-03-18:04
    7. */
    8. public class Redis_ml {
    9. public static void main(String[] args) {
    10. //建立与数据库连接
    11. Jedis jedis = new Jedis("localhost", 6379);
    12. //设置密码
    13. jedis.auth("123456");
    14. //测试是否连接上
    15. System.out.println(jedis.ping());
    16. //String的相关操作
    17. //连接第七个数据库
    18. jedis.select(3);
    19. // 存值
    20. // jedis.hset("man","sname","帅哥");
    21. // jedis.hset("man","sage","18");
    22. // jedis.hset("man","sex","男");
    23. // 取指定的字段值
    24. // System.out.println(jedis.hget("man", "sname"));
    25. // 删除值
    26. // System.out.println(jedis.hdel("man","sage"));
    27. // 查询指定的key的所有字段
    28. // System.out.println(jedis.hgetAll("man"));
    29. // 查询指定的key是否存在
    30. // System.out.println(jedis.hexists("man", "sname"));
    31. // System.out.println(jedis.hexists("man", "sage"));
    32. // 获取指定key的长度
    33. // System.out.println(jedis.hlen("man"));
    34. }
    35. }

    2.3 Redis列表(List)

    1. package com.zking.ssm.common;
    2. import redis.clients.jedis.Jedis;
    3. /**
    4. * @Name BingBing
    5. * @company zking cy
    6. * @create 2023-11-03-18:04
    7. */
    8. public class Redis_ml {
    9. public static void main(String[] args) {
    10. //建立与数据库连接
    11. Jedis jedis = new Jedis("localhost", 6379);
    12. //设置密码
    13. jedis.auth("123456");
    14. //测试是否连接上
    15. System.out.println(jedis.ping());
    16. //String的相关操作
    17. //连接第七个数据库
    18. jedis.select(3);
    19. // lpush key value1 value2 value3 将一个或多个值插入到列表头部
    20. jedis.lpush("List_hobby", "唱", "跳", "rap", "篮球");
    21. // llen key 获取列表的长度
    22. System.out.println(jedis.llen("List_hobby"));
    23. // lindex key index 根据索引获取列表中的元素
    24. System.out.println(jedis.lindex("List_hobby", 0));
    25. // lrange key start sop 查看指定范围内的元素
    26. System.out.println(jedis.lrange("List_hobby", 0, 2));
    27. }
    28. }

    2.4 Redis集合(Set)

    1. package com.zking.ssm.common;
    2. import redis.clients.jedis.Jedis;
    3. import java.util.Set;
    4. /**
    5. * @Name BingBing
    6. * @company zking cy
    7. * @create 2023-11-03-18:04
    8. */
    9. public class Redis_ml {
    10. public static void main(String[] args) {
    11. //建立与数据库连接
    12. Jedis jedis = new Jedis("localhost", 6379);
    13. //设置密码
    14. jedis.auth("123456");
    15. //测试是否连接上
    16. System.out.println(jedis.ping());
    17. //String的相关操作
    18. //连接第七个数据库
    19. jedis.select(3);
    20. // Redis集合(Set)
    21. // sadd key value1 [value2] 向集合添加一个或多个元素
    22. jedis.sadd("set_user", "哈巴狗", "花猪", "牛马", "joker");
    23. // scard key 获取集合中的元素数量
    24. System.out.println(jedis.scard("set_user"));
    25. // exists key 是否存在
    26. System.out.println(jedis.exists("set_user"));
    27. }
    28. }

    2.5 Redis有序集合(Sorted Set)

    1. package com.zking.ssm.common;
    2. import redis.clients.jedis.Jedis;
    3. import java.util.HashMap;
    4. import java.util.Map;
    5. import java.util.Set;
    6. /**
    7. * @Name BingBing
    8. * @company zking cy
    9. * @create 2023-11-03-18:04
    10. */
    11. public class Redis_ml {
    12. public static void main(String[] args) {
    13. //建立与数据库连接
    14. Jedis jedis = new Jedis("localhost", 6379);
    15. //设置密码
    16. jedis.auth("123456");
    17. //测试是否连接上
    18. System.out.println(jedis.ping());
    19. //String的相关操作
    20. //连接第七个数据库
    21. jedis.select(3);
    22. // 5、Redis有序集合(Sorted Set)
    23. // -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
    24. jedis.zadd("mysort", 1.0, "三国演义");
    25. jedis.zadd("mysort", 2.0, "西游记");
    26. jedis.zadd("mysort", 3.0, "水浒传");
    27. jedis.zadd("mysort", 4.0, "红楼梦");
    28. Map map = new HashMap<>();
    29. map.put("mutouliu", 5.0);
    30. jedis.zadd("mysort", map);
    31. //正序排列
    32. Set mysort = jedis.zrange("mysort", 0, -1);
    33. System.out.println(mysort);
    34. //倒序排列
    35. Set mysort1 = jedis.zrange("mysort", -1, 0);
    36. System.out.println(mysort1);
    37. // 命令用于计算集合中元素的数量
    38. System.out.println(jedis.zcard("mysort"));
    39. // 命令用于计算有序集合中指定分数区间的成员数量
    40. System.out.println(jedis.zcount("mysort", 0, 4));
    41. // 命令在计算有序集合中指定字典区间内成员数量。
    42. System.out.println(jedis.zlexcount("mysort", "-", "+"));
    43. }
    44. }

    三,Redis在项目应用

    1. 缓存:Redis作为一种内存数据库,常用于缓存常用数据,如数据库查询结果、API响应等。通过将数据存储在Redis中,可以快速获取数据,提高系统的性能和响应速度。

    2. 会话管理:Redis可用于存储会话数据,特别是在分布式系统中,可以将用户的会话数据存储在Redis中,以实现多个服务节点之间的会话共享。

    3. 发布/订阅系统:Redis具有发布/订阅功能,可以用于构建实时消息系统。通过发布/订阅功能,可以将消息发送到频道,并由订阅者实时接收并处理消息。

    4. 排行榜/计数器:Redis提供了有序集合、计数器等功能,可以用于实现排行榜、计数器等应用场景。比如实时热门文章排行榜、用户关注数计数器等应用。

    5. 分布式锁:Redis提供了原子操作的能力,可以用于实现分布式锁。在分布式系统中,可以使用Redis的原子操作实现互斥锁,保证在同一时间只有一个进程能够访问共享资源,确保数据的一致性和并发安全性。

    6. 消息队列:Redis的列表结构非常适合用作消息队列。可以将待处理的任务作为消息发布到Redis的列表中,然后通过消费者逐一处理这些任务。

    7. 地理位置的存储与查询:Redis提供了地理位置相关的API,可以将地理信息与特定对象关联起来,并进行查询

        总的来说,Redis在项目中的主要应用包括缓存、会话管理、发布/订阅系统、排行榜/计数器、分布式锁、消息队列以及地理位置的存储与查询等方面。这些应用可以提高系统性能、实现实时消息传递和数据共享等功能。

  • 相关阅读:
    Redis的底层数据结构分析
    如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据
    Git版本控制管理——合并
    zabbix自动发现linux系统挂载的nas盘,并实现读写故障的监控告警
    李沐机器学习入门
    两表union 如何保证group by 字段唯一
    Pytorch从零开始实战10
    自己编译JDK
    读 | SA : The Hard Parts 之数据所有权
    R语言使用epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用pch参数自定义指定点图数据点的形状
  • 原文地址:https://blog.csdn.net/m0_73192864/article/details/134207027