备案我网站的大致内容是,wordpress分类访问不,重庆微信网站,给您更优质的服务体验1. 创建项目并配置文件 勾选NoSQL中的 Spring Data Redis。当然,把 Web 中的 SpringWeb 也勾选一下.方便写接口进行后续测试。 在 application.yml 中配置 2. 不同数据类型使用Demo
在SpringBoot中#xff0c;为我们提供了StringRedisTemplate类#xff0c;供我们处理一些文…1. 创建项目并配置文件
勾选NoSQL中的 Spring Data Redis。当然,把 Web 中的 SpringWeb 也勾选一下.方便写接口进行后续测试。 在 application.yml 中配置 2. 不同数据类型使用Demo
在SpringBoot中为我们提供了StringRedisTemplate类供我们处理一些文本数据。这个类相较于之前的Jedis中的各种用法还是存在较大差异。 Spring这里的操作Redis的接口相当于在原始的Redis命令/方法上进一步封装了一层。个人感觉并不是很友好不符合设计的标准模式吧还需要额外的学习成本。
2.1 使用String
RestController
public class MyController {Autowiredprivate StringRedisTemplate redisTemplate;GetMapping(/testString)ResponseBodypublic String testString() {redisTemplate.opsForValue().set(key, 111);redisTemplate.opsForValue().set(key2, 222);redisTemplate.opsForValue().set(key3, 333);String value redisTemplate.opsForValue().get(key);System.out.println(value: value);return OK;}2.2 使用list
如果之前存在垃圾数据可以清楚垃圾数据删库。但是呢RedisTemptlate并没有和flush相关的方法啊这可怎么办为什么实际上也确实是没有和flush相关的方法但是RedisTemptlate能够让使用者直接执行到原生的Redis命令。这样一来没有封装的哪些命令可以通过原生方法来执行了这就是execute方法。 这里的RedisConnection代表了Redis连接就相当于Jedis对象。
execute 要求回调方法中必须写 return 语句. 返回个东西.这个回调返回的对象, 就会作为 execute 本身的返回值.
List的基本使用演示如下
GetMapping(/testList)ResponseBodypublic String testList() {// 先清除之前的数据.redisTemplate.execute((RedisConnection connection) - {// execute 要求回调方法中必须写 return 语句. 返回个东西.// 这个回调返回的对象, 就会作为 execute 本身的返回值.connection.flushAll();return null;});redisTemplate.opsForList().leftPush(key, 111);redisTemplate.opsForList().leftPush(key, 222);redisTemplate.opsForList().leftPush(key, 333);String value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);value redisTemplate.opsForList().rightPop(key);System.out.println(value: value);return OK;}
2.3 使用hash
GetMapping(/testHash)ResponseBodypublic String testHash() {redisTemplate.execute((RedisConnection connection) - {connection.flushAll();return null;});redisTemplate.opsForHash().put(key, f1, 111);redisTemplate.opsForHash().put(key, f2, 222);redisTemplate.opsForHash().put(key, f3, 333);String value (String) redisTemplate.opsForHash().get(key, f1);System.out.println(value: value);Boolean exists redisTemplate.opsForHash().hasKey(key, f1);System.out.println(exists: exists);redisTemplate.opsForHash().delete(key, f1, f2);Long size redisTemplate.opsForHash().size(key);System.out.println(size: size);return OK;}
2.4 使用Set
GetMapping(/testSet)ResponseBodypublic String testSet() {redisTemplate.execute((RedisConnection connection) - {connection.flushAll();return null;});redisTemplate.opsForSet().add(key, 111, 222, 333);SetString result redisTemplate.opsForSet().members(key);System.out.println(result: result);Boolean exists redisTemplate.opsForSet().isMember(key, 111);System.out.println(exists: exists);Long count redisTemplate.opsForSet().size(key);System.out.println(count: count);redisTemplate.opsForSet().remove(key, 111, 222);result redisTemplate.opsForSet().members(key);System.out.println(result: result);return OK;}
2.5 使用Zset
GetMapping(/testZSet)ResponseBodypublic String testZSet() {redisTemplate.execute((RedisConnection connection) - {connection.flushAll();return null;});redisTemplate.opsForZSet().add(key, zhangsan, 10);redisTemplate.opsForZSet().add(key, lisi, 20);redisTemplate.opsForZSet().add(key, wangwu, 30);SetString members redisTemplate.opsForZSet().range(key, 0, -1);System.out.println(members: members);SetZSetOperations.TypedTupleString membersWithScore redisTemplate.opsForZSet().rangeWithScores(key, 0, -1);System.out.println(membersWithScore: membersWithScore);Double score redisTemplate.opsForZSet().score(key, zhangsan);System.out.println(score: score);redisTemplate.opsForZSet().remove(key, zhangsan);Long size redisTemplate.opsForZSet().size(key);System.out.println(size: size);Long rank redisTemplate.opsForZSet().rank(key, lisi);System.out.println(rank: rank);return OK;}
这些基本山都是简单的api调用只不过和redis原生的命令有所区别。