redis在linux中安装步骤以及java远程调用redis

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/QCIWYY/article/details/83584989

redis在linux中安装步骤:
1.安装准备环境:安装gcc
yum install gcc-c++
2.下载redis安装包
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
3.解压redis
tar xzf redis-5.0.0.tar.gz 
4.修改配置文件redis.conf
daemonize no改为daemonize yes
5.进入到src目录下启动redis
./redis-server ../redis.conf
6.查看redis是否启动成功
ps -ef | grep -i redis
7.停止redis命令
./redis-cli shutdown
8.启动客户端
./redis-cli
8.redis的简单使用
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

java远程连接redis

  • 我们要在Java平台上使用redis,肯定需要Jedis这个客户端。首先在pom文件中引入Jedis的依赖
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
        </dependency>
  • 普通方式创建Jedis对象。
package com.example.redis;
import org.junit.Test;

import redis.clients.jedis.Jedis;

public class JedisDemo {

	@Test
	public void methodOne() {
        Jedis jedis = new Jedis("192.168.10.128", 6379);
        jedis.set("name", "wangwu");
        String value = jedis.get("name");
        System.out.println(value);
        jedis.close();
    }

}
  • 通过线程安全的连接池来创建Jedis对象。
@Test
	public void methodTwo() {
        //获得连接池的配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //设置最大连接数
        config.setMaxTotal(30);
        //设置最大空闲连接数
        config.setMaxIdle(10);
        //获得连接池
        JedisPool jedisPool = new JedisPool(config, "192.168.10.128", 6379);

        Jedis jedis = null;

        try {
            jedis = jedisPool.getResource();
            String value = jedis.get("name");
            System.out.println(value);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }

            jedisPool.close();
        }
    }

在测试的时候会报错

报错①

这个错误是因为我们没有在防火墙中开始6379端口,我的虚拟机为centos7版本,开始方式如下

firewall-cmd --zone=public --add-port=6379/tcp --permanent
开启端口之后,重启防火墙

firewall-cmd --reload

这个时候测试java可能还会报错,链接被拒绝

Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
	at redis.clients.jedis.Connection.connect(Connection.java:154)
	at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:83)
	at redis.clients.jedis.Connection.sendCommand(Connection.java:93)
	at redis.clients.jedis.BinaryClient.set(BinaryClient.java:100)
	at redis.clients.jedis.Client.set(Client.java:29)
	at redis.clients.jedis.Jedis.set(Jedis.java:65)
	at redis.Demo1.main(Demo1.java:10)
Caused by: java.net.ConnectException: Connection refused: connect
	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:148)
	... 6 more

可能的原因:

redis服务器的redis.conf配置中bind 127.0.0.1

 应该改为:bind 0.0.0.0

重启redis服务,再使用Java连接即可。

防火墙修改参考博客:https://blog.csdn.net/u011846257/article/details/54707864

redis入门参考:https://www.jianshu.com/p/27fa1a1d46c9


 

猜你喜欢

转载自blog.csdn.net/QCIWYY/article/details/83584989
今日推荐