欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【redis】jedis概述_简单使用(Java中使用redis)

【redis】jedis概述_简单使用(Java中使用redis)

2025/6/9 23:47:03 来源:https://blog.csdn.net/wosixiaokeai/article/details/140066984  浏览:    关键词:【redis】jedis概述_简单使用(Java中使用redis)

1、定义与背景

  • Jedis是Redis官方推崇的Java客户端实现之一,允许Java程序通过其提供的Java API与Redis服务器进行交互。
  • Redis是一款高性能的NOSQL系列的非关系型数据库,使用C语言开发,支持多种键值数据类型,包括字符串、哈希、列表、集合和有序集合等。

2、主要特点

  • 简单易用:Jedis提供了直观的API,使得与Redis的交互变得简单而直观。
  • 高性能:Jedis被设计为高性能的Redis客户端,通过连接池等技术提高通信效率,并支持异步操作。
  • 支持多种数据结构:Jedis完全支持Redis所提供的各种数据结构,满足各种业务需求。
  • 集群支持:Jedis提供了对Redis集群的支持,实现数据的高可用和扩展性。
  • 发布订阅:支持Redis的发布订阅功能,可用于实现消息队列、事件通知等场景。

3、使用步骤

步骤1.创建一个maven工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>redis_demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.7</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.0.1</version></dependency></dependencies>
</project>

步骤2.配置logback用到的xml文件 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configurationxmlns="http://ch.qos.logback/xml/ns/logback"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback logback.xsd"><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%date{HH:mm:ss.SSS} %c [%t] - %m%n</pattern></encoder></appender><logger name="c" level="debug" additivity="false"><appender-ref ref="STDOUT"/></logger>
<root level="ERROR"><appender-ref ref="STDOUT"/></root>
</configuration>

步骤3:修改redis.conf的配置文件 ,加入当前虚拟机的ip地址

bind 192.168.44.4 127.0.0.1 -::1

步骤4:修改redis.conf的配置文件,将文件保护模式修改,原有默认值是yes,改成no protected-mode no

步骤5:查看一下linux防火墙状态

systemctl status firewalld 默认是打开的 绿色active(running)

步骤6:关闭防火墙

systemctl stop firewalld

关闭之后再去查看防火墙状态

inactive (dead)

步骤7:测试连接

@Slf4j(topic = "c.TestConnection")
public class TestConnection {public static void main(String[] args) {Jedis jedis=new Jedis("192.168.44.4",6379);String p = jedis.ping();log.debug(p);}
}

4、操作不同数据类型

4.1字符串(String)

  1. 设置和获取
    • 使用jedis.set(key, value)设置字符串值。
    • 使用jedis.get(key)获取字符串值。
  2. 追加字符串
    • 使用jedis.append(key, value)在已存在的字符串后追加字符串。
  3. 自增/自减
    • 使用jedis.incr(key)jedis.decr(key)对字符串值进行整数自增/自减。

示例代码:

Jedis jedis = new Jedis("localhost", 6379);  
jedis.set("username", "john_doe");  
String username = jedis.get("username");  
System.out.println("Username: " + username);  
jedis.append("username", "_updated");  
System.out.println("Updated Username: " + jedis.get("username"));  
jedis.incr("counter"); // 假设counter是一个整数  
System.out.println("Counter: " + jedis.get("counter"));  
jedis.close();

4.2哈希表(Hash)

  1. 设置字段和值
    • 使用jedis.hset(key, field, value)设置哈希表中字段的值。
  2. 获取字段值
    • 使用jedis.hget(key, field)获取哈希表中字段的值。
  3. 获取所有字段和值
    • 使用jedis.hgetAll(key)获取哈希表中所有字段和值。

示例代码:

Jedis jedis = new Jedis("localhost", 6379);  
jedis.hset("user:1", "name", "John");  
jedis.hset("user:1", "age", "30");  
String name = jedis.hget("user:1", "name");  
System.out.println("Name: " + name);  
Map<String, String> userMap = jedis.hgetAll("user:1");  
for (Map.Entry<String, String> entry : userMap.entrySet()) {  System.out.println(entry.getKey() + ": " + entry.getValue());  
}  
jedis.close();

4.3列表(List)

  1. 在列表两端插入元素
    • 使用jedis.lpush(key, values...)在列表左侧插入元素。
    • 使用jedis.rpush(key, values...)在列表右侧插入元素。
  2. 获取列表元素
    • 使用jedis.lrange(key, start, end)获取列表中的元素范围。
  3. 从列表两端移除元素
    • 使用jedis.lpop(key)从列表左侧移除并返回元素。
    • 使用jedis.rpop(key)从列表右侧移除并返回元素。

示例代码:

Jedis jedis = new Jedis("localhost", 6379);  
jedis.lpush("mylist", "a", "b", "c");  
List<String> list = jedis.lrange("mylist", 0, -1);  
System.out.println("List: " + list);  
String leftElement = jedis.lpop("mylist");  
System.out.println("Left Element: " + leftElement);  
jedis.close();

4.4集合(Set)和有序集合(Sorted Set)

集合和有序集合的操作与列表类似,但集合不允许重复元素,有序集合的元素按分数排序。使用jedis.sadd(key, members...)向集合添加元素,使用jedis.zadd(key, score, member)向有序集合添加元素等。

示例代码(仅有序集合):

Jedis jedis = new Jedis("localhost", 6379);  
jedis.zadd("sortedset", 1, "a");  
jedis.zadd("sortedset", 2, "b");  
Set<Tuple> tuples = jedis.zrevrangeWithScores("sortedset", 0, -1);  
for (Tuple tuple : tuples) {  System.out.println("Member: " + tuple.getElement() + ", Score: " + tuple.getScore

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词