问题:
SortingParams sortingParameters = new SortingParams();
// 按desc排序
sortingParameters.desc();
//根据某一个区间来查
sortingParameters.limit(0, 2000000);
List a1=redisTemplate.sort(key,sortingParameters);
List a2=redisTemplate.sort(key2,sortingParameters);
List a3=redisTemplate.sort(key3,sortingParameters);
List a4=redisTemplate.sort(key4,sortingParameters);
List a5=redisTemplate.sort(key5,sortingParameters);
a1和a3在debug的取值为null,a2,a4,a5的值为[],这是list类型,a1和a3应该为[ ],出现错误(错误信息在下面)
错误:
使用redis获取当前list会出现WRONGTYPE Operation against a key holding the wrong kind of value的错误
解决方法:
- 检查所属类型是否对应
去客户端Type key 检查key是什么类型,自己获取缓存数据是什么类型
- 第二个,我发现显示为null是我之前就添加缓存数据的,存的类型也是list,最后我发现sortingParameters的排序有问题,单独使用升序和降序会报错,我最后用alpha()来处理,就解决了,当然你也可以alpha()和升序或者降序一起使用
SortingParams sortingParameters = new SortingParams();
// 按照字母排序
sortingParameters.alpha();
//根据某一个区间来查
sortingParameters.limit(0, 2000000);