网站建设流程王晴儿,html网页开发工具,做erp系统的网站,有什么平台做网站比较好大家好 , 我是苏麟 , 今天带来强大的Redis . REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统#xff0c;是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选…大家好 , 我是苏麟 , 今天带来强大的Redis . REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库并提供多种语言的 API。
Redis 通常被称为数据结构服务器因为值value可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。 官方网站 : 雷迪斯 (redis.io) 好用的可视化工具 : Quickredis 下载地址 : QuickRedis 发行版 - Gitee.com 好用的可视化工具 : RedisDesktopManager 官方网站 : https://redisdesktop.com/download 开始使用 : 引入依赖 !--springbot 整合 redis--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency 序列化 /*** 序列化 让JDK原生序列化转成JSON*/
Configuration
public class RedisConfig {BeanSuppressWarnings(all)public RedisTemplateString, Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplateString, Object objectObjectRedisTemplate new RedisTemplate();objectObjectRedisTemplate.setConnectionFactory(redisConnectionFactory);//设置KEY 序列化使用 String 字符串objectObjectRedisTemplate.setKeySerializer(RedisSerializer.string());objectObjectRedisTemplate.setHashKeySerializer(RedisSerializer.string());GenericJackson2JsonRedisSerializer jsonRedisSerializer new GenericJackson2JsonRedisSerializer();//设置Value 序列化 格式objectObjectRedisTemplate.setValueSerializer(jsonRedisSerializer);objectObjectRedisTemplate.setHashValueSerializer(jsonRedisSerializer);return objectObjectRedisTemplate;}
}操作 /*** 目标 : 在JAVA中操作redis spring date redis* spring date redis 中提供了一个高度封装了的一个类 RedisTemple 针对jedis客户端api进行了分类封装,将同一种类型封装成Operation接口* ValueOperation : 简单K-V操作* SetOperation : set类型数据操作* ZSetOperation : zset类型数据操作* HashOperation : Hash类型数据操作* ListOperation : List类型数据操作*/SpringBootTest
class ItslRedisApplicationTests {AutowiredRedisTemplate redisTemplate;/*** 目标 : 对5中不同类型数据进行操作* opsForValue* opsForHash* opsForList* opsForSet* opsForZSet*//*** 操作String类型数据*/Testvoid testString() {//set操作redisTemplate.opsForValue().set(sl, sl);//get操作System.out.println(redisTemplate.opsForValue().get(sl));//setex操作 命令为指定的 key 设置值及其过期时间。//如果 key 已经存在 SETEX 命令将会替换旧的值。redisTemplate.opsForValue().set(ty, sl, 100, TimeUnit.SECONDS);//setnx操作 命令在指定的 key 不存在时为 key 设置指定的值。Boolean aBoolean redisTemplate.opsForValue().setIfAbsent(ty, ty);System.out.println(aBoolean);}/*** 目标 : 操作Hash数据类型*/Testvoid testHash() {HashOperations hashOperations redisTemplate.opsForHash();//存值hashOperations.put(002, name, sl);hashOperations.put(002, age, 20);//取值System.out.println(hashOperations.get(002, age));System.out.println(hashOperations.get(002, name));//获得hash结构中的所有字段Set keys hashOperations.keys(002);for (Object key : keys) {System.out.println(key);}//获得hash结构中的所有值List values hashOperations.values(002);for (Object value : values) {System.out.println(value);}}/*** 目标 : 操作List数据类型*/Testvoid testList() {ListOperations listOperations redisTemplate.opsForList();//存值listOperations.leftPush(ykList, a);listOperations.leftPushAll(ykList, s, b, s, t);//取值List ykList listOperations.range(ykList, 0, -1);for (Object o : ykList) {System.out.println(o);}//获取长度int size ykList.size();for (int i 0; i size; i) {//出队Object ykList1 listOperations.rightPop(ykList);System.out.println(出队的是 : ykList1);}}/*** 目标 : 操作Set数据类型*/Testvoid testSet() {SetOperations setOperations redisTemplate.opsForSet();//存值setOperations.add(ty, a, b, v, b);//取值Set ty setOperations.members(ty);for (Object o : ty) {System.out.println(删除前 : o);}//删除成员setOperations.remove(ty, a);//取值Set tys setOperations.members(ty);for (Object o : tys) {System.out.println(删除后 : o);}}/*** 目标 : 操作ZSet数据类型*/Testvoid testZSet() {ZSetOperations zSetOperations redisTemplate.opsForZSet();//存值zSetOperations.add(myZset, a, 10.1);zSetOperations.add(myZset, b, 11.1);zSetOperations.add(myZset, c, 12.1);zSetOperations.add(myZset, d, 13.1);//取值Set myZset zSetOperations.range(myZset, 0, -1);for (Object o : myZset) {System.out.println(删除前 : o);}//修改分数zSetOperations.incrementScore(myZset, d, 25.4);//删除成员zSetOperations.remove(myZset, a, b);//取值Set myZsets zSetOperations.range(myZset, 0, -1);for (Object os : myZsets) {System.out.println(删除后 : os);}}/*** 目标 : 通用操作*/Testvoid testCommon() {//获取Redis中所有的keySetString keys redisTemplate.keys(*);for (String key : keys) {System.out.println(key);}//判断某个key是否存在Boolean itcast redisTemplate.hasKey(key);System.out.println(itcast);//删除指定keyredisTemplate.delete(key);//获取指定key对应的value的数据类型DataType dataType redisTemplate.type(001);System.out.println(dataType.name());}
}使用小技巧 :
登录态自动存储Redis中 开发中一个小用处 在分布式登录的时候用Seesion保存登录态 实现共享存储 第一步 : 引入依赖 !--spring-session 整合 redis --dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactId/dependency
第二步 : 在yml中配置 spring:session:#存储时间 86400 二个月timeout: 86400#自动存储到reidsstore-type: redis
这样就完成自动存储到Redis中! 这期就到这里下期再见 !
拜拜!