redis安裝並與SpringBoot整合
阿新 • • 發佈:2019-12-31
Redis安裝
遠端連線工具
可以使用xshell,crt,MobaXterm等連線工具
我這裡使用xshell,使用教育版即可,推薦直接在官網登記下載
開啟後,檔案->新建,建立一個新的會話屬性,錄入伺服器的IP,點選連線後輸入登入的使用者名稱密碼即可
連線並安裝
安裝來源推薦直接使用官網的下載路徑即可,裡面有詳細的安裝步驟
推薦安裝到opt目錄下,下面是我的安裝流程
su root // 切換到root使用者
cd /opt/ // 切換到opt目錄
wget http://download.redis.io/releases/redis-5.0.5.tar.gz // 安裝,最新版本以官網為準
tar -zxvf redis-5.0.5.tar.gz // 解壓
cd redis-5.0.5 // 進入redis目錄
make // 製作
cd src // 進入redis的src
make test // test,報錯,缺少tcl
cd /usr/local/
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz // 下載tcl,有點久
tar -zxvf tcl8.6.1-src.tar.gz
cd tcl8.6.1/unix/
./configure
make
make install
cd /opt/redis-5.0.5/src/
make test
ps -ef | grep redis // 檢視是否已經啟動了redis,有就kill -kill ***
redis-server // 啟動服務,再新開一個視窗,在新視窗進行redis測試
redis-cli // 啟動客戶端
複製程式碼
測試redis
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> shutdown
not connected>
// CTRL+C
複製程式碼
實現後臺啟動redis服務
cd
mkdir myredis
cp redis.conf /root/myredis/ // 拷貝config到新建資料夾
cd /root/myredis/
複製程式碼
使用vim編輯器,將bind 127.0.0.1註釋掉,protected-mode的yes改為no,將daemonize中 no改為yes,將dir(rdb持久化臨時檔案)修改為 /root/myredis,暫不開啟AOF
測試後臺啟動,不新開會話視窗
redis-server /root/myredis/redis.conf // 用自己的配置啟動
ps -ef | grep redis
redis-cli
複製程式碼
SpringBoot整合Redis
連線測試
引入依賴
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
複製程式碼
注入RedisTemplate
@Configuration
public class CommonConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
複製程式碼
配置Redis
# redis
spring:
redis:
host:
port:
複製程式碼
簡單測試
@SpringBootTest
class WppApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void test01() {
redisTemplate.boundValueOps("k1").set("v1");
}
}
複製程式碼
客戶端檢視
127.0.0.1:6379> keys *
1) "\xac\xed\x00\x05t\x00\x02k1"
複製程式碼
使用RedisTemplate<String,String>,或StringRedisTemplate實現序列化
@SpringBootTest
class WppApplicationTests {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void test01() {
redisTemplate.boundValueOps("k2").set("v2");
stringRedisTemplate.boundValueOps("k3").set("v3");
}
}
複製程式碼
檢視客戶端
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "\xac\xed\x00\x05t\x00\x02k1"
複製程式碼
使用模板類方法
@SpringBootTest
class WppApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void test02() {
execute().set("k4".getBytes(),"v4".getBytes());
}
private RedisConnection execute() {
return (RedisConnection) redisTemplate.execute((RedisCallback) redisConnection -> redisConnection);
}
}
複製程式碼
檢視
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k2"
4) "\xac\xed\x00\x05t\x00\x02k1"
複製程式碼
待更新