鞍山市城乡建设局网站响应式网站建设的未来发展
2026/4/6 4:03:44 网站建设 项目流程
鞍山市城乡建设局网站,响应式网站建设的未来发展,wordpress 无法上传,代理网店《Redis-day01》 0. 今日总结 了解了NoSQL以及Redis的优势复习了Redis的基础命令了解了SpringDataRedis的配置和使用分别实现了自动和手动序列化及反序列化 1. 初识Redis 1.1 认识NoSQL1.2 认识Redis Redis诞生于2009年全称是Remote Dictionaryserver#xff0c;远程词典服务器…《Redis-day01》0. 今日总结了解了NoSQL以及Redis的优势复习了Redis的基础命令了解了SpringDataRedis的配置和使用分别实现了自动和手动序列化及反序列化1. 初识Redis1.1 认识NoSQL1.2 认识RedisRedis诞生于2009年全称是Remote Dictionaryserver远程词典服务器是一个基于内存的键值型NoSQL数据库。特征键值(key-value)型value支持多种不同数据结构功能丰富单线程每个命令具备原子性低延迟速度快(基于内存、10多路复用、良好的编码)支持数据持久化支持主从集群、分片集群支持多语言客户端1.3 安装Redis在苍穹外卖已经安装过2. Redis数据类型2.1 五种常用数据类型Redis是key-value结构的数据key的数据类型字符串Stringvalue的数据类字符串String哈希hash列表list集合set有序集合 sorted set / zset2.2 各种数据类型特点字符串String普通字符串哈希hash散列类似于java中的HashMap结构列表list按照插入顺序排序可以用重复元素类似于Java中的LinkedList集合set无须集合没有重复元素类似于Java中的HashSet有序集合 sorted set / zset集合中每个元素关联一个分数score根据分数升序排序没有重复元素3. Redis常用命令3.1 字符串操作命令SET key value设置指定key的值GET key获取指定key 的值SETEX key seconds value设置指定key的值并将key的过期时间设为seconds秒SETNX key value只有在key不存在时设置key的值3.2 哈希操作命令HSET key field value将哈希表key中的字段field的值设为valueHGET key field获取存储在哈希表中指定字段的值HDEL key field删除存储在哈希表中的指定字段HKEYS key获取哈希表中的所有字段HVALS key获取哈希表中的所有值3.3 列表操作命令LPUSH key value1 [value2]将一个或多个值插入到列表头部类似于队列类似于栈LRANGE key start stop获取列表指定范围内的元素RPOP key一处并获取列表最后一个元素Pop最先插入的元素LLEN key获取列表长度3.4 集合操作命令SADD key member1 [member2]向集合添加一个或多个成员SMEMBERS key返回集合中的所有成员SCARD key获取集合的成员数SINTER key1 [key2]返回给定所有集合的交集SUNION key1 [key2]返回所有给定集合的并集SREM key member1 [member2]删除集合中一个或多个成员3.5 有序集合操作命令ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合中指定区间内的成员ZINCRBY key increment member有序集合中对指定成员的分数加上增量 incrementZREM key member [member ...]移除有序集合中的一个或多个成员3.6 通用命令通用命令是指部分数据类型都可以使用的命令KEYS pattern查找所有符合给定模式pattern的keyEXISTS key检查给定 key 是否存在TYPE key返回 key 所储存的值的类型DEL key该命令用于在 key 存在时删除 key4. 在Java中操作Redis4.1 Redis的Java客户端JedisLettuceSpring Data RedisSpring Data Redis是Spring的一部分对Redis底层开发包进行了高度封装。在Spring项目中可以使用Spring Data Redis来简化操作。4.2 Spring Data Redis使用方式4.2.1 基本方法4.2.2 操作步骤导入Spring Data Redis的 mavan坐标在sky-server的pom.xml文件中导入mavan坐标配置Redis数据源在.yml中配置host port等数据实际数据存放在dev.yml文件中编写配置类创建RedisTemplate对象通过RedisTemplate对象操作RedisTestpublicvoidtestRedisTemplate(){System.out.println(redisTemplate);//通过opsForXXX方法获得五种操作对象ValueOperationsvalueOperationsredisTemplate.opsForValue();HashOperationshashOperationsredisTemplate.opsForHash();SetOperationssetOperationsredisTemplate.opsForSet();ListOperationslistOperationsredisTemplate.opsForList();ZSetOperationszSetOperationsredisTemplate.opsForZSet();}/** * 操作字符串类型的数据 */TestpublicvoidtestString(){//set get setex setnxredisTemplate.opsForValue().set(city,北京);Stringcity(String)redisTemplate.opsForValue().get(city);System.out.println(city);redisTemplate.opsForValue().set(code,1234,3,TimeUnit.MINUTES);redisTemplate.opsForValue().setIfAbsent(lock,1);redisTemplate.opsForValue().setIfAbsent(lock,2);}/** * 操作哈希类型的数据 */TestpublicvoidtestHash(){//hset hget hdel hkeys hvalsHashOperationshashOperationsredisTemplate.opsForHash();//给key 100的hash插入两个值hashOperations.put(100,name,tom);hashOperations.put(100,age,20);//获得key100的hash的name字段的值Stringname(String)hashOperations.get(100,name);System.out.println(name);SetkeyshashOperations.keys(100);System.out.println(keys);ListvalueshashOperations.values(100);System.out.println(values);hashOperations.delete(100,age);}/** * 操作列表类型的数据 */TestpublicvoidtestList(){//lpush lrange rpop llenListOperationslistOperationsredisTemplate.opsForList();listOperations.leftPushAll(mylist,a,b,c);listOperations.leftPush(mylist,d);ListmylistlistOperations.range(mylist,0,-1);System.out.println(mylist);LongsizelistOperations.size(mylist);System.out.println(size);}/** * 操作集合类型的数据 */TestpublicvoidtestSet(){//sadd smembers scard sinter sunion sremSetOperationssetOperationsredisTemplate.opsForSet();setOperations.add(set1,a,b,c,d);setOperations.add(set2,a,b,x,y);SetmemberssetOperations.members(set1);System.out.println(members);LongsizesetOperations.size(set1);System.out.println(size);SetintersectsetOperations.intersect(set1,set2);System.out.println(intersect);SetunionsetOperations.union(set1,set2);System.out.println(union);setOperations.remove(set1,a,b);}/** * 操作有序集合类型的数据 */TestpublicvoidtestZset(){//zadd zrange zincrby zremZSetOperationszSetOperationsredisTemplate.opsForZSet();zSetOperations.add(zset1,a,10);zSetOperations.add(zset1,b,12);zSetOperations.add(zset1,c,9);Setzset1zSetOperations.range(zset1,0,-1);System.out.println(zset1);zSetOperations.incrementScore(zset1,c,10);zSetOperations.remove(zset1,a,b);}/** * 通用命令操作 */TestpublicvoidtestCommon(){//keys exists type delSetkeysredisTemplate.keys(*);System.out.println(keys);BooleannameredisTemplate.hasKey(name);Booleanset1redisTemplate.hasKey(set1);for(Objectkey:keys){DataTypetyperedisTemplate.type(key);System.out.println(type.name());}redisTemplate.delete(mylist);}4.2.3 手动序列化反序列化4.3 Spring Cache4.3.1 Spring Cache介绍Spring Cache 是一个框架实现了基于注解的缓存功能只需要简单地加一个注解就能实现缓存功能。Spring Cache 提供了一层抽象底层可以切换不同的缓存实现例如:EHCacheCaffeineRedis常用注解4.3.2 Spring Cache入门案例分别演示了上述四种常用注解的使用方式和作用实现机制拿Cacheable举例执行到对应方法时被代理对象拦截转而执行代理方法从redis中查询如果查询成功就退出方法执行方法体getById将数据存到redis

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询