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,把端口改成你要开放的端口应该就可以啦