Java与Redis的集成

编程入门 行业动态 更新时间:2024-10-22 23:47:44

<a href=https://www.elefans.com/category/jswz/34/1770091.html style=Java与Redis的集成"/>

Java与Redis的集成

目录

Java连接Redis

导入依赖

Redis服务器准备

 建立连接

 Java操作Redis常用类型数据

Redis字符串(String)

 Redis哈希(Hash)

  Redis列表(List)

 Redis集合(Set)

 Redis有序集合(Sorted Set)

Redis在项目应用


Java连接Redis

Redis与MySQL都是数据库,java操作redis其实跟操作mysql的过程是一样的。

导入依赖

打开IDEA,进入Java项目,导入pom依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version>
</dependency>

Redis服务器准备

导入依赖后,找到redis.bat双击启动redis

 建立连接

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

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

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

 

 Java操作Redis常用类型数据

Redis字符串(String)

package com.zking.ssmmon;import redis.clients.jedis.Jedis;public class Redis_ml {public static void main(String[] args) {//建立与数据库连接Jedis jedis = new Jedis("localhost", 6379);//设置密码jedis.auth("123456");//测试是否连接上System.out.println(jedis.ping());//String的相关操作//连接第七个数据库jedis.select(3);//        存值jedis.set("uname","帅哥");//        取值System.out.println(jedis.get("uname"));//        设置该hobby多久后自动删除jedis.setex("hobby",25,"game");//        查看剩余时间System.out.println(jedis.ttl("hobby"));//        修改值jedis.set("uname","美男子");System.out.println(jedis.get("uname"));//        删除值//  System.out.println(jedis.del("uname"));}
}

 Redis哈希(Hash)

package com.zking.ssmmon;import redis.clients.jedis.Jedis;public class Redis_ml {public static void main(String[] args) {//建立与数据库连接Jedis jedis = new Jedis("localhost", 6379);//设置密码jedis.auth("123456");//测试是否连接上System.out.println(jedis.ping());//String的相关操作//连接第七个数据库jedis.select(3);//      存值
//      jedis.hset("man","sname","帅哥");
//      jedis.hset("man","sage","18");
//      jedis.hset("man","sex","男");
//      取指定的字段值
//      System.out.println(jedis.hget("man", "sname"));
//      删除值
//      System.out.println(jedis.hdel("man","sage"));
//      查询指定的key的所有字段
//      System.out.println(jedis.hgetAll("man"));
//      查询指定的key是否存在
//      System.out.println(jedis.hexists("man", "sname"));
//      System.out.println(jedis.hexists("man", "sage"));
//      获取指定key的长度
//        System.out.println(jedis.hlen("man"));}
}

  Redis列表(List)

package com.zking.ssmmon;import redis.clients.jedis.Jedis;public class Redis_ml {public static void main(String[] args) {//建立与数据库连接Jedis jedis = new Jedis("localhost", 6379);//设置密码jedis.auth("123456");//测试是否连接上System.out.println(jedis.ping());//String的相关操作//连接第七个数据库jedis.select(3);//        lpush key value1 value2 value3          将一个或多个值插入到列表头部jedis.lpush("List_hobby", "唱", "跳", "rap", "篮球");
//        llen key                                获取列表的长度System.out.println(jedis.llen("List_hobby"));
//        lindex key index                        根据索引获取列表中的元素System.out.println(jedis.lindex("List_hobby", 0));
//        lrange key start sop                    查看指定范围内的元素System.out.println(jedis.lrange("List_hobby", 0, 2));}
}

 Redis集合(Set)

package com.zking.ssmmon;import redis.clients.jedis.Jedis;import java.util.Set;public class Redis_ml {public static void main(String[] args) {//建立与数据库连接Jedis jedis = new Jedis("localhost", 6379);//设置密码jedis.auth("123456");//测试是否连接上System.out.println(jedis.ping());//String的相关操作//连接第七个数据库jedis.select(3);//        Redis集合(Set)//       sadd key value1 [value2]                向集合添加一个或多个元素jedis.sadd("set_user", "哈巴狗", "花猪", "牛马", "joker");
//        scard key                               获取集合中的元素数量System.out.println(jedis.scard("set_user"));
//        exists key                              是否存在System.out.println(jedis.exists("set_user"));}
}

 Redis有序集合(Sorted Set)

package com.zking.ssmmon;import redis.clients.jedis.Jedis;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Redis_ml {public static void main(String[] args) {//建立与数据库连接Jedis jedis = new Jedis("localhost", 6379);//设置密码jedis.auth("123456");//测试是否连接上System.out.println(jedis.ping());//String的相关操作//连接第七个数据库jedis.select(3);//        5、Redis有序集合(Sorted Set)
// -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。jedis.zadd("mysort", 1.0, "三国演义");jedis.zadd("mysort", 2.0, "西游记");jedis.zadd("mysort", 3.0, "水浒传");jedis.zadd("mysort", 4.0, "红楼梦");Map<String, Double> map = new HashMap<>();map.put("mutouliu", 5.0);jedis.zadd("mysort", map);//正序排列Set<String> mysort = jedis.zrange("mysort", 0, -1);System.out.println(mysort);//倒序排列Set<String> mysort1 = jedis.zrange("mysort", -1, 0);System.out.println(mysort1);//        命令用于计算集合中元素的数量System.out.println(jedis.zcard("mysort"));
//        命令用于计算有序集合中指定分数区间的成员数量System.out.println(jedis.zcount("mysort", 0, 4));
//        命令在计算有序集合中指定字典区间内成员数量。System.out.println(jedis.zlexcount("mysort", "-", "+"));}
}

Redis在项目应用

Redis 是一个开源的内存数据库,它提供了键值对存储、发布/订阅、列表、集合、排序集等功能。在项目应用中,Redis 可以用于多个方面。

  1. 缓存:Redis 可以作为缓存层,将频繁读取的数据存储在内存中,从而加快数据访问的速度。通过将结果缓存在 Redis 中,可以减少对数据库或其他数据源的访问次数,提高系统的响应速度。

  2. 分布式锁:在分布式系统中,Redis 可以用于实现分布式锁,保证多个节点对共享资源的互斥访问。通过 Redis 的原子操作,可以实现安全的分布式锁机制,防止多个节点同时对同一个资源进行操作。

  3. 会话管理:在 Web 应用中,Redis 可以用于存储会话数据。通过将用户的登录状态和相关信息存储在 Redis 中,可以实现无状态的应用架构,提高系统的可伸缩性和性能。

  4. 计数器和排行榜:Redis 提供了计数器和排序集功能,可以方便地实现计数和排名功能。比如,可以使用 Redis 的计数器功能记录网站的访问量,使用排序集功能实现排行榜功能等。

  5. 消息队列:Redis 的发布/订阅功能可以用作简单的消息队列系统。通过将消息发布到特定的频道,其他订阅者可以接收并处理这些消息,实现解耦和异步处理。

需要注意的是,Redis 是一个内存数据库,数据存储在内存中,因此它适合处理对读写速度要求较高,但数据量相对较小的场景。在使用 Redis 时需要注意数据持久化、容灾备份等方面的考虑,以确保数据的安全性和可靠性。 

更多推荐

Java与Redis的集成

本文发布于:2023-11-16 10:32:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1617907.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Java   Redis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!