
这里主要讲述SpringBoot集成Redis的使用,因此不再详述Redis,如果需要请自行百度
博主也有写过Redis文章,如下
Redis入门简介
Redis(Remote Dictionary Server)译为“远程字典服务”
Redis是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库、key-value 数据库,也是当前热门的NoSQL数据库之一
NoSQL = Not Only SQL(不仅仅是SQL,而不是“不使用 SQL”)
泛指 non-relational (非关系型数据库)
Redis通常也被称为数据结构服务器,这是因为它可以存储多种数据类型,比如 string(字符串),hash(哈希散列),list(列表),set(集合)和 sorted set(有序集合)等
首先我们需要启动 Redis 服务端
在pom.xml文件中加入Redis依赖
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
Java中比较著名的客户端: Jedis , lettuce , Redisson
SpringBoot中使用 RedisTemplate(StringRedisTemplate) 模版类 *** 作 Redis data-redis
使用lettuce 客户端库 SpringBoot中使用 RedisTemplate类的方法 *** 作redis数据, 实际就是调用lettuce 客户端的中的方法
application.yml文件配置
server:
port: 8081
servlet:
context-path: /myredis
spring:
# redis 配置
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password:
# 连接超时时间
timeout: 10s
#Java中著名客户端: Jedis,lettuce,Redisson
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
在Controller中测试
@RestController
public class RedisController {
/**
* SpringBoot中使用 RedisTemplate(StringRedisTemplate) 模版类 *** 作 Redis
* 注入RedisTemplate
*
* RedisTemplate 泛型三种方式
* RedisTemplate
* RedisTemplate
StringRedisTemplate : 把key,value 都是作为String处理, 使用的是String的序列化
RedisTemplate : 把key,value 经过了序列化存到redis。 key,value 是序列化的内容, 不能直接识别
序列化:把对象转化为可传输的字节序列过程称为序列化
反序列化:把字节序列还原为对象的过程称为反序列化
序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。进行跨平台存储和网络传输的方式就是IO,IO支持的数据格式就是字节数组。必须在把对象转成字节数组的时候就制定一种规则(序列化),从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化)
只要是需要进行“跨平台存储”和”网络传输”的数据,都需要进行序列化。 本质上存储和网络传输 都需要经过 把一个对象状态保存成一种跨平台识别的字节格式,然后其他的平台才可以通过字节信息解析还原对象信息。
序列化的方式 序列化只是一种拆装组装对象的规则,这种规则肯定也可能有多种多样
比如现在常见的序列化方式有:
JDK(不支持跨语言)、JSON、XML、Hessian、Kryo(不支持跨语言)、Thrift等
Student( name=zhangsan, age=20) ---- { "name":"zhangsan", "age":20 }
Java的序列化: 把Java对象转为byte[], 二进制数据
json序列化:json序列化功能将对象转换为 JSON 格式或从 JSON 格式转换对象。
例如把一个Student对象转换为JSON字符串{"name":"李四", "age":29} )
反序列化(将JSON字符串 {"name":"李四", "age":29} 转换为Student对象)
如果要使用JSON序列化,则需要实现序列化接口
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = 7902017519895562501L;
}
且Java对象实现serializable接口后会有一个序列化版本号,在IDEA中设置如下
Settings----> Inspections ----> 搜索“serializable” ,勾选上serializable class without 'serialVersionUID'
然后在具体的Java类中 添加序列化ID 即可
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)