• Redis的java客户端jedis


    使用jedis连接Redis

    第一步:创建一个java工程

    第二步:把jedis依赖的jar包导入工程。如果maven工程,添加jedis的坐标。

    <dependencies>
            <!-- Jedis -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>2.8.1</version>
            </dependency>
    </dependencies>

    第三步:创建一个Jedis对象。构造方法中指定一个host、一个port两个参数。

    第四步:调用redis的命令。每个redis命令在jedis中都对应一个方法。

    第五步:关闭Jedis。

    public class HelloJedis {
        public static void main(String[] args) {
            //实例化一个jedis对象,连接到指定的服务器,指定连接端口号
            Jedis jedis = new Jedis("192.168.199.130",6379);
            //redis密码
            jedis.auth("test");
            //将key为message的信息写入redis数据库中
            jedis.set("message", "Hello Redis!");
            //从数据库中取出key为message的数据
            String value = jedis.get("message");
            System.out.println(value);
            //关闭连接
            jedis.close();
        }
    }

    使用连接池

    第一步:创建一个连接池对象,需要指定服务的ip及端口号。

    第二步:从连接池中获得jedis对象。

    第三步:使用jedis对象操作redis。

    第四步:关闭jedis对象。

    第五步:关闭连接池。

    连接池是单例、jedis是多例的。

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    
    public class Snippet {
         public void testJedisPool() throws Exception {
                   //创建连接池对象
                   JedisPool jedisPool = new JedisPool("192.168.25.153", 6379);
                   //从连接池获得连接
                   Jedis jedis = jedisPool.getResource();
                   //操作redis数据库
                   String result = jedis.get("jedis-test");
                   System.out.println(result);
                   //关闭jedis对象
                   jedis.close();
                   //关闭连接池
                   jedisPool.close();
              }
    }

    连接redis集群

    第一步:创建一个JedisCluster对象,此对象在系统中单例。构造方法需要指定所有节点的ip及端口。

    第二步:直接使用JedisCluster操作redis。

    第三步:程序结束时关闭JedisCluster。

    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;
    import redis.clients.jedis.HostAndPort;
    import redis.clients.jedis.JedisCluster;
    
    public class ClusterJedis {
        public static void main(String[] args) throws IOException {
            //用于存放redis服务器端点集合,可以被使用redis服务器地址与端口
            Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>();
            //向集合中添加一个redis服务器端点
            jedisClusterNodes.add(new HostAndPort("192.168.199.130", 6379));
            //创建redis集群对象
            JedisCluster jc = new JedisCluster(jedisClusterNodes);
            //在集群对象中添加数据
            jc.set("foo", "bar");
            //获取数据
            String value = jc.get("foo");
            String message = jc.get("message");
            System.out.println(value+","+message);
            //关闭
            jc.close();
        }
    }

    实现 java连接redis遇到的

    • 问题:java连接redis出错

    可能原因:Redis的配置文件redis.conf里使用了 bind localhost 或者 bind 127.0.0.1

    band localhost 只能本机访问,局域网内计算机不能访问

    bind 局域网IP 只能局域网内IP的机器访问, 本地localhost都无法访问.

    解决方法:注释掉bind 的代码 如:#bind localhost

    • 问题:java连接redis错误

    可能原因:redis默认使用的 6379 端口 未开放

    解决方法:配置linux,允许访问6379端口,命令:iptables -A INPUT -p tcp –dport 6379 -j ACCEPT

    • 问题:java连接redis出错,错误信息如下:

    DENIED Redis is running in protected mode because protected mode is enabled

    原因:redis目前处于受保护模式,不允许非本地客户端链接,我们可以通过给redis设置密码,然后客户端链接的时候,写上密码就可以解决了

    解决方法:修改redis.conf文件配置

    使用命令 :/ requirepass 快速查找到 # requirepass foobared 然后去掉注释,这个foobared改为自己的密码。然后wq保存。

    service  redis  restart  这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许

    尝试用密码登录并执行具体的命令看到可以成功执行

    Redis防火墙,开放redis端口

    #关闭防火墙
    Service  iptables  stop
    vi  /etc/sysconfig/iptables
    #添加
    
    -A  INPUT  -m  state  --state  NEW  -m  tcp  -p  tcp  --dport  6379  -j  ACCEPT
    #重启防火墙
    service  iptables  restart
  • 相关阅读:
    Linux安全加固
    mosquitto
    Docker设置2375端口
    linux shell 常见的时间戳操作
    tar打包并且排除log目录
    spring boot2整合shiro安全框架实现前后端分离的JWT token登录验证
    http post
    scp命令 Linux和Windows文件互传
    git did not exit cleanly (exit code 1) 的解决办法
    windows安装TortoiseGit详细使用教程【基础篇】
  • 原文地址:https://www.cnblogs.com/aaron911/p/7868584.html
Copyright © 2020-2023  润新知