本文章為給新手學習spring boot遠程連通redis提供一個學習參考.
環境是intellij idea(window)+ redis(linux虛擬機-vmware)。
首先在linux安裝好redis,這里網上一堆教程,這里不再贅述。
我用的是centos7,等安裝完成ping通之后,接下來開始正題,以下幾個步驟幫助你連接redis:
1.修改redis.conf文件(最好拷貝一份,在副本上修改)
注釋掉127.0.0.1的限制
把保護模式protected-mode yes 改為 no
ps:多啰嗦一句,記得把守護線程開啟,daemonize no(默認) 改為 yes
2.排除防火牆
最簡單直接的方法就是把linux的防火牆關了,(在你本人學習的虛擬機上可以這樣)
service iptables stop
或者你也可以試試把6379端口暴露出來。。
firewall-cmd --zone=public --add-port=6379/tcp --permanent
然后重啟一下防火牆
systemctl restart firewalld
3.重啟redis
我是這樣帶ip地址啟動的,-h 后面的參數就是你虛擬機的ip地址,可通過ifconfig -a 查看
之后就是可以通過ip訪問
4.接下來就是一個虛擬機的坑。。
虛擬機采用NAT模式,查看下面兩個勾是否勾中,子網地址必須是你上面那個ip的同段,比如虛擬機ip地址為192.168.59.128,那么這里的子網地址必須是192.168.59.*。
如果不是,請去網絡中心-找到VMware Virtual Ethernet Adapter for VMnet8右鍵屬性,找到Ipv4屬性去修改。
到這里,可以用redis可視化工具試試連接redis。
成功連接上linux的redis了。
ps:建議設置redis密碼(不知道沒有密碼能不能連上)。
5.接下來就是spring boot redis的配置
網上教程也很多,這里不再詳細贅述了。
引入依賴
<!--引入redis依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
redis配置application.yml,關鍵配置:host為你虛擬機的ip,端口,還有密碼這三個
spring:
redis:
database: 0
host: 192.168.59.128
port: 6379
password: 123456
# jedis:
# pool:
# max-active: 8
# max-wait: -1
# max-idle: 8
# min-idle: 0
timeout: 500
看看redis里存在的key,我們用k2來測試聯通
寫個最簡單的測試類。
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class RedisdemoApplicationTests { @Autowired private StringRedisTemplate stringRedisTemplate; @Test public void contextLoads() { String k2 = stringRedisTemplate.opsForValue().get("k2"); System.out.print("k2:" + k2); } }
結果取到了k2的值,連接成功!這里用到的是stringRedisTemplate,里面封裝了很多api,簡單實用。
純隨筆,如有不對,感謝指出!