目录
环境准备
先开个临时用的单机redis
修改配置文件:
1,把bind 127.0.0.1注释掉,这句话的意思时只有本机才能连接redis(绑定了本机);其他ip登录被拒绝,所以我们把它注释掉
2,port 6667
3,保护模式去掉 protected-mode no
4,daemonize yes 后台模式
为了让客户端访问,我们还需要添加安全组规则(非阿里云服务器不需要)
Spring Boot整合Redis
创建一个spring boot项目
引入下面的依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- 实现对 Spring Data Redis 的自动化配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<!-- 去掉对 Lettuce 的依赖,因为 Spring Boot 优先使用 Lettuce 作为 Redis 客户端 -->
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 引入 Jedis 的依赖,这样 Spring Boot 实现对 Jedis 的自动化配置 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.61</version>
</dependency>
<!-- Spring Data Redis 默认使用 Jackson 作为 JSON 序列化的工具 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
本例我们用的是jedis
application.properties
## Redis
spring.redis.host=服务器ip
spring.redis.port=6667
/**
* @author wmx
* @date 2019-11-22
*/
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class RedisTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void testString(){
stringRedisTemplate.opsForValue().set("fpx","win");
}
}
跑一个单测
[root@xinyeshuaiqi tempRedis]# redis-cli -p 6667
127.0.0.1:6667>
127.0.0.1:6667> keys *
1) "fpx"
127.0.0.1:6667> get fpx
"win"
完事
Redis Pipelining
可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。
@Test
public void testPipelined(){
List<Object> objects = stringRedisTemplate.executePipelined(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection) throws DataAccessException {
connection.set("super carry".getBytes(), "doinb".getBytes());
connection.set("tian".getBytes(), "神僧".getBytes());
connection.get("super carry".getBytes());
connection.get("tian".getBytes());
return null;
}
});
System.out.println(objects);
}
输出:
[true, true, doinb, 神僧]
Redis事务
@Test
public void testTransaction(){
stringRedisTemplate.setEnableTransactionSupport(true);
stringRedisTemplate.opsForValue().set("1","a");
stringRedisTemplate.opsForValue().set("2","b");
stringRedisTemplate.opsForValue().set("3","c");
}
通过setEnableTransactionSupport
设置支持事务
不常用了解即可
Redission
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.11.3</version>
</dependency>
可以使用RedissonClient
获取redis分布式锁
lettuce
Spring Boot 优先使用 Lettuce 作为 Redis 客户端
如果不想使用,排包即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<!-- 去掉对 Lettuce 的依赖,因为 Spring Boot 优先使用 Lettuce 作为 Redis 客户端 -->
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
你无论使用jedis、redission、lettuce,底层来说透明的,用户是无感的
用户直接操作Spring提供的RedisTemplate
推荐阅读
http://www.iocoder.cn/Spring-Boot/Redis/
https://blog.csdn.net/zl_momomo/article/details/82788294
转载请注明:汪明鑫的个人博客 » Spring Boot redis 学习笔记
说点什么
您将是第一位评论人!