zoukankan      html  css  js  c++  java
  • centos7远程服务器中redis的安装与java连接

    1.下载安装redis

      在远程服务器中你想下载的位置执行以下命令来下载redis文件到服务器中

      $ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
      说明:$是指你的当前目录,不是命令的一部分,wget命令用来下载网上资源,后面的地址是网上资源路径,你可以去redis官网上查找你想下载的redis版本的下载路径
      解压文件
      
    $ tar xzf redis-4.0.9.tar.gz
      编译文件
      $ cd redis-4.0.9
      $ make
      注意:如果在make时报错有如下原因
        1.没有安装gcc(因为redis是用c写得),并且是4以上版本需要执行 yum install gcc
        2.有可能也要安装gcc++,需要执行 yum install gcc++
        3.如果要用make test命令测试redis,还需要安装tcl,命令为 yum install tcl
    2.启动redis服务和客户端
      在redis-4.0.9(解压编译目录)下执行
      $ src/redis-server
      这样就启动了服务,界面会出项相应的启动信息
      现在再来启动客户端
      $ src/redis-cli

    3.使用java客户端访问远程redis服务
      因为redis本身默认是不支持远程地址访问的,所以我们需要先配置一下redis
      1.编辑安装目录下的redis.conf文件,注释掉本地ip绑定,
      #bind 127.0.0.1
      2.在本地客户端中设置登录密码
      $ config set requirepass mypwd
      这样基本就可以啦
      具体的这块配置参考:
        https://www.cnblogs.com/y-l-h/p/7930085.html
        https://www.cnblogs.com/machanghai/p/5497043.html

      接下来在开发工具中创建maven项目,添加jedis依赖
      <dependencies>
          <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
      </dependencies>

      编写客户端

    import redis.clients.jedis.Jedis;
    
    public class RedisTest {
        public static void main(String[] args) {
         //create your redis ip address
         String redisIp = "";
    //Connecting to Redis server on cloud server Jedis jedis = new Jedis(redisIp); //authentication password jedis.auth("12358"); System.out.println("Connection to server successfully"); //check whether server is running or not System.out.println("server is running: "+jedis.ping()); } }

    结果如下,表示连接成功

    Connection to server successfully
    server is running: PONG
    其他问题:之前用阿里的云服务器进行redis远程连接时会报错
    xception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
        at redis.clients.jedis.Connection.connect(Connection.java:207)
        at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93)
        at redis.clients.jedis.Connection.sendCommand(Connection.java:126)
        at redis.clients.jedis.Connection.sendCommand(Connection.java:117)
        at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:564)
        at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2138)
        at top.pancras.redis.RedisTest.main(RedisTest.java:11)
    Caused by: java.net.SocketTimeoutException: connect timed out
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at redis.clients.jedis.Connection.connect(Connection.java:184)
        ... 6 more

    防火墙没有开启,不是防火墙的问题,主要在于阿里的云服务想要对外开放端口还需要在其官网进行配置才可以,参考http://www.cnblogs.com/coffee9527/p/8711906.html,把端口改成你要开放的端口应该就可以啦


      
      
  • 相关阅读:
    android权限大全
    Java反射经典实例
    SD卡的寄存器 SD总线协议 CRC算法
    ARM CortexM3 操作模式和特权级别
    使用 Printf via SWO/SWV 输出调试信息
    embOS实时操作系统 概览
    embOS实时操作系统 多任务调度
    android wifi hotspot
    Eclipse Java 智能提示
    ARM CortexM3 概览
  • 原文地址:https://www.cnblogs.com/coffee9527/p/8847611.html
Copyright © 2011-2022 走看看