Redis整合Spring Boot
Bug 终结者 人气:0一、什么是Redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis是一个NoSQL数据库
不仅仅是数据库!
二、Redis的优缺点
优点:
- 读写性能非常好,Redis读的速度是 110000次/s ,写的速度是 81000次/s
- 支持数据持久化,AOF和RDB两种持久化方式
- 支持事务,事务是原子性的
- 数据结构丰富,支持多种数据结构(String、List、Set、Hash、ZSet、HyperLogLog、Bitmaps、Geospatial等)
- 支持主从复制、读写分离
缺点:
- 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
- Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
- 主机宕机前,无法完全将数据同步到从机,切换ip后会导致数据不一致问题,降低可用性
但优点还是大于缺点的,Redis是单线程的、基于key-value的,速度极快,可以提高系统的可用性,具有更好的高并发吞吐量能力~
三、阿里云服务器部署安装Redis
❇️在Linux服务器新建文件夹存放Redis
进入 /usr/local/,新建redis目录
mkdir redis
下载redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
解压刚刚下载的redis
tar -zvxf redis-5.0.7.tar.gz
查看目录文件;
ll
输入命令编译文件
make
输入命令安装:
make PREFIX=/usr/local/redi
此命令会生成启动文件:
进入bin目录创建conf配置文件目录
cd bin mkdir conf
将配置文件复制到bin目录内:
cp /usr/local/redis/redis-5.0.7/redis.conf config/
进入bin目录启动redis;
./redis-server # 启动服务
✅测试连接
启动客户端:
./redis-cli # 启动客户端
连接成功!
四、关闭防火墙,配置Redis访问端口
⏰配置Redis
进入Redis安装目录:
cd /usr/local/redis/redis-5.0.7/bin/config
打开配置文件:
vim redis.conf
修改如下:
保存并退出:
esc :wq
⏰关闭防火墙
查询80端口是否启动:
firewall-cmd --query-port=80/tcp
可以看到,未启动
关闭Linux防火墙:
systemctl status firewalld
⏰阿里云控制台添加6379接口访问
五、Spring Boot 整合 Redis
新建基于Maven管理的Spring Boot项目,整合Redis,实现远程连接阿里云服务器测试!
♻️项目结构
导入依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
⛽核心源码
测试类:
package com.wanshi.test; import com.wanshi.MainApplication; 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(classes = MainApplication.class) public class Test1 { @Autowired private StringRedisTemplate redisTemplate; @Test public void t1() { redisTemplate.opsForValue().set("xiaowang", "hello"); String xiaowang = redisTemplate.opsForValue().get("xiaowang"); System.out.println(xiaowang); } }
✳️测试结果
执行结果:
总结
Redis是一个NoSQL非关系型数据库,性能非常好,读写速度秒杀所有数据库,可以说是性能最好的数据库,Redis支持主从复制,缓存,底层采用key-value形式存储数据,速度非常快,性能很好,推荐使用,目前大部分企业都在使用Redis!
加载全部内容