spring-boot整合redis作为缓存(1)——redis的设置

        分几篇文章总结spring-boot与redis的整合

        1、redis的安装

        2、redis的设置

        3、spring-boot的缓存

        4、自定义key

        5、spring-boot引入redis


       这是第二篇文章【redis的设置】

       影响redis连接的设置

       redis在安装好了以后,默认在/etc/redis.conf会有配置文件,可以对其进行相应的配置。也可以通过config set 配置项 值的命令形式进行设置。注意:不是所有的配置均可以使用config set的方式,这个时候就需要修改配置文件。另外,配置文件是只读的,需要用chmod u+w进行授权。如果要获得某配置的信息,则可以用命令config get 配置项。通过

config get * 可以获得所有的配置项。

      这里说几个整合需要修改的配置

      1、bind

     解释:该配置项用来绑定客户端ip,处于安全考虑,只有被绑定的客户端才能连上redis

     默认值:127.0.0.1

     修改值:修改为客户端ip或者注释掉,或者设置为0.0.0.0

     注意:如果将其注释掉或者设置为0.0.0.0的话,则可以让所有的客户端连接redis。127.0.0.1的话只有本机可以连上redis

                 该配置不能通过config set的命令动态修改,修改完后重启服务才能生效


     2、protected-mode

     解释:设置是否是保护模式,保护模式为yes的时候,满足以下两点,则无法连接redis

                 a、设置bind为0.0.0.0或者注释掉

                 b、没有设置密码

     默认值:yes

     修改值:如果bind为0.0.0.0或注释掉,或者没有设置密码,设置为no

 

      3、requirepass

      解释:密码

      默认值:空

      修改值:密码

      注意:下次登录需要输入命令auth 密码


      中文乱码

      中文乱码的问题可以在连接服务的时候指定--raw参数解决,redis-cli --raw。


      通过root启动服务

       redis服务请通过root来启动,不然在代码中调用命令的时候很可能返回权限问题。

      测试是否连接

      配置好以上设置后,基本上就可以连接redis了,如何测试是否连上,用一个客户端软件当然是最直接的,比如redis-client。其次,可以用jedis来进行验证。

      比如:

public class JedisTest {

	private static final Logger logger = LoggerFactory.getLogger(JedisTest.class);
	
	private Jedis jedis; 
	
	@Before
	public void setup(){
		logger.debug("create connection by jedis");
		jedis = new Jedis("redis://root:nmamtf@192.168.58.133:6379");
		logger.debug("connection is created:"+jedis);
		logger.debug("connect status:"+jedis.isConnected());
	}
	
	@Test
	public void addTest(){
		jedis.set("test", "测试");
	}
	
	//@Test
	public void delTest(){
		jedis.del("test");
	}
	
}

        需要注意的是,密码如何传入jedis的构造器。在jedis中,普遍是用Jedis类,但是其中的构造器没有传递密码的,底层有一个Client的类,他提供一个密码字段。然而在调用Client类之前,会通过java.net.Url的getUserInfo()方法去解析url获取密码,所以需要【用户名:密码@】的形式,即使你没有用户名,也需要随便填写一个。而且,Jedis(String url)这个构造器也调用了java.net.Url的getScheme()方法去获取了scheme,所以必须要加上redis://。同样地,该构造器也检验了端口号,所以必须填写端口号

        如果没有密码,那么可以使用new Jedis("192.168.58.133",6379)这个构造器,这样url参数就可以省略密码,redis://和端口号了

        最后说一个坑,网上有人说,如果telnet不能连接上,那么redis不通。则个说法是不完全正确的。redis通了以后,你用telnet会一直显示正在连接,但是也不会返回连接不上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值