1. 程式人生 > 程式設計 >redis安裝並與SpringBoot整合

redis安裝並與SpringBoot整合

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"
複製程式碼

待更新