redis安裝并与SpringBoot整合

677 阅读2分钟

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"

待更新 详细过程,可参考源代码:github.com/chetwhy/clo…