文章发布在个人博客
Redis 第一篇 介绍,安装,Spring集成
新数据裤的爆发结束了关系型数据库的统治地位(如Mysql等,虽然结束了统治地位,但使用频率和影响力依旧高居前位),新兴的数据库在NoSQL(非关系型数据库)的大旗下各显神通(衍生了非常多的派别,Redis,MongoDB,图谱型数据库-neo4j等等等等),以键值对,嵌套文档,甚至关系图谱来存储数据。
NoSQL 它是"Not Only SQL"的缩写指的是非关系型数据库,而我们常用的都是关系型数据库。就像我们常用的 mysql,sqlserver 一样,这些数据库一般用来存储重要信息,应对普通的业务是没有问题的。随着互联网的高速发展,传统的关系型数据库在应付超大规模,超大流量以及高并发的时候力不从心,这就需要使用到像 Redis 这样的 NoSQL 数据库。
本系列记录了NoSQL中的佼佼者–Redis
Redis的优点
1.基于内存运行,性能高效
2.支持分布式,理论上可以无限扩展
3.丰富的数据类型 Redis 支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 等数据类型操作
Redis安装
云服务器安装,我用的是阿里云,其他云服务器操作不便,Redis也能安装到本地
1.安装Docker
Docker :一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
Docker作为近年来最火的虚拟化技术之一,有很多强大的功能和作用,这里不深入讲解(主要我自己也没了解太深),这边简单来说就是利用Docker这个便携应用容器进行Redis安装。
docker 一键运行MySQL数据库:docker run -d -p 3306:3306 tutum/mysql
登陆云服务器后,依此输入下面的命令,回车执行
sudo yum -y update
sudo yum -y install epel-release
sudo yum -y install docker-io
2.安装Redis
先启动Docker
sudo systemctl start docker
sudo docker version
安装Redis并启动
sudo docker pull redis:latest
sudo docker images
sudo docker run --name redis -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "输入自己的服务器密码"
验证是否启动成功
sudo docker ps
端口号开启
阿里云服务器上手动开启6379端号
Spring集成Redis
Redis 客户端:所谓客户端,有时也叫开发包,因为SpringBoot 项目实际上是通过网络来使用和操作 Redis(Mysql也是网络远程调用),如果没有客户端,使用起来会很复杂,客户端的主要作用是为了更好的使用 Redis,提供了一整套操作接口或操作工具类。
常见三种客户端
-
Lettuce 客户端
Spring Boot 2.0 之后默认集成的,高级 Redis 客户端,用于线程安全同步,异步和响应使用,支持集群。它的优势是支持同步、异步和响应式模式,多个线程可以共享一个连接实例,而不必担心多线程并发问题。
-
Jedis 客户端
是老牌的 Redis 的 Java 实现客户端,提供了比较全面的 Redis 命令的支持,Spring Boot 2.0 之前默认使用的,现在已不推荐使用。
-
Redission 客户端(我用的比较多)
实现了分布式和可扩展的 Java 数据结构。它的优势提供很多分布式相关操作服务。
springboot集成
一.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二.application.properties配置 Redis 服务器相关配置
# Redis服务器地址
spring.redis.host= 123.45.656.218
# Redis 服务器端口号
spring.redis.port= 6379
# Redis 服务器密码 (请换成自己机器密码)
spring.redis.password=
三.启动应用
import org.springframework.data.redis.core.StringRedisTemplate
@Controller
public class DemoController {
@Autowired
private StringRedisTemplate stringRedisTemplate;
}