Redis 之八:Jdeis API 的使用(Java 操作 Redis)

Jedis API 使用

Jedis 是 Redis 官方推荐的 Java 客户端,它提供了一套丰富的 API 来操作 Redis 服务器。通过 Jedis API,开发者可以方便地在 Java 应用程序中执行 Redis 的命令来实现数据的增删查改以及各种复杂的数据结构操作。

以下是一些基本的 Jedis API 示例和它们对应的功能:

常用操作

  1. 连接 Redis

    Jedis jedis = new Jedis("localhost", 6379); // 创建一个与Redis实例的连接,默认端口是6379
  2. 字符串(String)操作

    设置/获取值:

    jedis.set("key", "value"); // 设置键值对
    String value = jedis.get("key"); // 获取键对应的值
  3. 哈希表(Hash)操作

    添加/获取哈希表中的字段值:

    jedis.hset("hashKey", "field", "value"); // 向哈希表添加字段
    Map map = jedis.hgetAll("hashKey"); // 获取整个哈希表的内容
  4. 列表(List)操作

    在列表头部或尾部插入元素:

    jedis.lpush("listKey", "item1"); // 在列表左侧添加元素
    List list = jedis.lrange("listKey", 0, -1); // 获取列表内所有元素
  5. 集合(Set)操作

    添加/查询集合成员:

    jedis.sadd("setKey", "member1"); // 将元素添加到集合中
    Set members = jedis.smembers("setKey"); // 获取集合中所有成员
  6. 有序集合(Sorted Set/ZSet)操作

    添加带分数的成员并排序:

    jedis.zadd("zsetKey", 1.0, "member1"); // 根据分数添加成员
    Set sortedMembers = jedis.zrangeByScore("zsetKey", 0, Double.MAX_VALUE); // 根据分数范围获取成员

除此之外,Jedis 还提供了事务、发布订阅、Lua 脚本、键空间通知等高级功能的API支持。为了确保资源的有效管理,使用完 Jedis 实例后需要调用 jedis.close() 方法关闭连接。

随着 Redis 版本更新和新特性的增加,Jedis API 也在不断扩展和完善,以适应更多的应用场景。

具体测试步骤

1. 新建 maven 项目

配置 pom.xml ,添加 Jedis 依赖


    
        redis.clients
        jedis
        3.6.3
    

2. 编写测试类

测试是否能够连通

先测试是否能连通本地redis (window )

/**
 * 访问本机
 */
public class Test {
    public static void main(String[] args) {
        //127.0.0.1 访问的window 上的 redis
        Jedis jedis = new Jedis("127.0.0.1",6379);
        jedis.auth("zhang");
        String name = jedis.get("name");
        System.out.println(name);
    }
}

注意: 如果 redis 配置了身份验证,可以使用 jedis.auth("") 指定密码即可。

3. 访问配置

a. 测试linux 连通

/**
 * 1. 防火墙和端口
 * 2. 修改配置,允许其他站点访问
 */
public class TestLinuxRedis {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.184.140",6379);
        String name = jedis.get("name");
        System.out.println(name);
    }
}

注意:默认情况下,连接会超时和失败。

原因:

  1. linux 防火墙或端口问题。可以通过关闭防火墙或开放端口解决

  2. 如果开放后,默认仍是无法访问的,因为 redis 默认只允许本机访问。需要修改配置文件 redis.conf

    a) 方式一: 修改 bind 127.0.0.1 改为 bind 0.0.0.0

    b) 方式二:注释掉 bind 127.0.0.1 同时 修改保护模式为 : protected-mode no

b. 关闭防火墙

[root@localhost bin]# systemctl stop firewalld

c. 再测试,通过!

再次开启防火墙,又不能通过,所以再单独开放 6379 端口即可

[root@zhangpeng bin]# systemctl start firewalld
[root@zhangpeng bin]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
[root@zhangpeng bin]# firewall-cmd --reload

开启防火墙命令:

*    firewall-cmd --zone=public --add-port=6379/tcp --permanent
*    firewall-cmd --reload**  # 配置立即生效

4. 问题总结

* 1. 出现 connect timed out 连接超时问题
*  a. 检查防火墙和端口是否开放
*  b. redis 保护问题,查看配置文件 redis.conf 文件
*      bind 127.0.0.1 -::1 注释掉
*      protected-mode no
*  c. 重新启动,先shutdown,再启动
* 2. 注意:不能向从节点中写数据的
*      redis.clients.jedis.exceptions.JedisDataException:
*      READONLY You can't write against a read only replica.

你可能感兴趣的:(Redis,redis,java,数据库,缓存)