第六章 Redis
官网下载地址
能源节点springboot材料
视频观看地址
https://www.bilibili.com/vide...
Redis:一个NoSQL数据库, 罕用作缓存应用 (cache)
Redis的数据类型:string , hash ,set ,zset , list
Redis是一个中间件:是一个独立的服务器。
java中驰名的客户端:Jedis , lettuce , Redisson,Spring,SpringBoot中有一个RedisTemplate(StringRedisTemplate) ,解决和redis交互
6.1 配置Windows版本的redis
Redis-x64-3.2.100.rar 解压缩到一个非中文的目录
redis-server.exe:服务端, 启动后,不要敞开
redis-cli.exe:客户端, 拜访redis中的数据
redisclient-win32.x86_64.2.0.jar : Redis图形界面客户端
执行形式:在这个文件所在的目录,执行 java -jar redisclient-win32.x86_64.2.0.jar
RedisTemplate 应用的 lettuce 客户端库
<!--redis起步依赖: 间接在我的项目中应用RedisTemplate(StringRedisTemplate)--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>
data-redis应用的 lettuce 客户端库
在程序中应用RedisTemplate类的办法 操作redis数据, 理论就是调用的lettuce 客户端的中的办法
6.2 比照 StringRedisTemplate 和 RedisTemplate
StringRedisTemplate :把k,v 都是作为String解决,应用的是String的序列化 ,可读性好
RedisTemplate :把k,v 通过了序列化存到redis。k,v 是序列化的内容,不能间接辨认.
默认应用的jdk序列化,能够批改为前提的序列化
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
为什么须要序列化?
序列化最终的目标是为了对象能够跨平台存储,和进行网络传输。而咱们进行跨平台存储和网络传输的形式就是IO,而咱们的IO反对的数据格式就是字节数组。咱们必须在把对象转成字节数组的时候就制订一种规定(序列化),那么咱们从IO流外面读出数据的时候再以这种规定把对象还原回来(反序列化)。
什么状况下须要序列化?
通过下面我想你曾经晓得了但凡须要进行“跨平台存储”和”网络传输”的数据,都须要进行序列化。
实质上存储和网络传输 都须要通过 把一个对象状态保留成一种跨平台辨认的字节格局,而后其余的平台才能够通过字节信息解析还原对象信息。
序列化的形式
序列化只是一种拆装组装对象的规定,那么这种规定必定也可能有多种多样,比方当初常见的序列化形式有:
JDK(不反对跨语言)、JSON、XML、Hessian、Kryo(不反对跨语言)、Thrift、Protofbuff、
Student( name=zs, age=20) ---- { “name”:“zs”, “age”:20 }
java的序列化: 把java对象转为byte[], 二进制数据
json序列化:json序列化性能将对象转换为 JSON 格局或从 JSON 格局转换对象。例如把一个Student对象转换为JSON字符串{“name”:“李四”, “age”:29} ),反序列化(将JSON字符串 {“name”:“李四”, “age”:29} 转换为Student对象)
设置key或者value的序列化形式
// 应用RedisTemplate ,在存取值之前,设置序列化// 设置 key 应用String的序列化redisTemplate.setKeySerializer( new StringRedisSerializer());// 设置 value 的序列化redisTemplate.setValueSerializer( new StringRedisSerializer());redisTemplate.opsForValue().set(k,v);