本机eclipse连接本机虚拟机centos上安装好的redis的教程

这里以Centos7+Redis3.0为例:

一、Centos7网络适配器设置:


二、Eclipse中配置Redis的配置文件:

	<!-- 配置JedisConnectionFactory -->
	<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<!-- hostName:服务器  value:虚拟机中centos上的ip地址 -->
		<property name="hostName" value="192.168.107.131" />
		<!-- Port:redis服务器端口号  默认值是6379 -->
		<property name="port" value="6379" />
		<!-- password:连接redis时所需要的密码 -->
		<!-- <property name="password" value="password" /> -->
		<!-- poolConfig:连接池配置对象 -->
		<property name="poolConfig" ref="poolConfig" />
	</bean> 

主要注意下面两行:

<property name="hostName" value="192.168.107.131" />  <!-- value:虚拟机中centos上的ip地址-->
<property name="port" value="6379" />   <!--redis服务器端口号-->

注:保证在本机上能ping通虚拟机中的Centos系统的ip,查看Centos上ip地址的命令:ifconfig

三、测试代码:

public class RedisDemo {
	@Test
	public void redisDemo() {
		ApplicationContext context = 
				new ClassPathXmlApplicationContext("applicationContext.xml");
		RedisTemplate redisTemplate = (RedisTemplate) context.getBean("redisTemplate");
		User user = new  User ();
		user.setId(1L);
		user.setUserName("user_name_1");
		user.setNote("Note1");
		//将user对象存储到redis缓存中
		redisTemplate.opsForValue().set("user_1",user);
		redisTemplate.opsForValue().set("sunhui", "helloworld");		
		//从redis缓存中获取user对象
		User user1 = (User)redisTemplate.opsForValue().get("user_1");
		System.out.println(user1.getUserName());
	}
} 

四、运行测试代码,发现出错:


五、分析原因并解决:

    1、redis.conf文件的配置信息未修改:

        配置文件中的bind为127.0.0.1,默认只能本机访问(虚拟机),需要改成指定的ip,我这里直接改成0.0.0.0


    2、Centos防火墙未关闭,解决方法关闭默认防火墙:

[root@localhost redis]# systemctl stop firewalld.service 

        查看防火墙状态(关闭后显示not running,开启后显示running):firewall-cmd  --state


    3、 没有将redis 端口规则添加到 iptables 里面,执行下面代码:

[root@localhost redis]#  iptables -I INPUT -p tcp --dport 6379 -j ACCEPT 

温馨提示:一般如果配置好了redis配置文件后出现连接不上Centos上的redis的原因就是虚拟机上的防火墙未关闭,本人的原因是:没有将redis端口规则添加到iptables中!

六、成功连接Centos上的Redis


小结:缘分拉近了你我距离,CSND让你我相识!

猜你喜欢

转载自blog.csdn.net/qq_37896194/article/details/80655868