redis

@Autowired
private StringRedisTemplate userRedisTemplate; //StringRedisTemplate 是工具类

0.redis数据库添加数据

String prefix = "-"+phone;   //加前缀
userRedisTemplate.opsForValue().set(prefix,JSONObject.toJSONString(userDO),1, TimeUnit.DAYS);
     注:
     key     :   prefix
     value  :   JSONObject.toJSONString(userDO)
     过期时间  :  1  (此处单位为天,还有其他)
     过期单位 : TimeUnit.DAYS(过期的单位,此处为天)
     

1.根据key获取数据

String s = userRedisTemplate.opsForValue().get(phone);
UserDO userDO=JSON.parseObject(s,UserDO.class);     //json数据转为对象

2.根据所有的key,查询所有的redis数据,放入map集合中

Map<String, Object> finalRedisMap = new HashMap<>();   //finalRedisMap 最终的
String  redisKeysPrefix = "-*";  //以-为前缀,*指的是查询所有的key
Set<String> redisKeys = userRedisTemplate.keys(redisKeysPrefix );  //根据key前缀为-,查询redis数据库中所有的数据
//将查询的值,遍历到finalRedisMap集合中,转换为UserDO对象
                redisKeys.stream().filter(o->Objects.nonNull(userRedisTemplate.opsForValue().get(o))).forEach(o->{
                    finalRedisMap.put(o, JSON.parseObject(userRedisTemplate.opsForValue().get(o),UserDO.class));
                });

3.根据key删除数据

userRedisTemplate.delete(key);

4.key是集合,根据key删除redis数据(key是以-为前缀的)

//根据key从redis删除数据
    @Override
    public Boolean delUserRedisAll(List<String> phoneList) throws ServiceException {
        Boolean delete=false;
        if(phoneList.size()>0){
            String prefixPhone=null;
            a:for(int i=0;i<phoneList.size();i++){
                prefixPhone="-"+phoneList.get(0);//遍历集合,给每个元素加前缀
                phoneList.remove(0);       //每次都删掉集合中的第一个元素
                phoneList.add(prefixPhone);
               for(int j=phoneList.size();j==0;j--){
                   if(phoneList.get(0).equals(phoneList.get(j))){//外层循环中的第一个元素与内层比较,是否和内层循环有重复的数据
                        break a;
                   }
               }
            }
            Iterator<String> it1 = phoneList.iterator();
            while (it1.hasNext()) {
                delete = userRedisTemplate.delete(it1.next());
            }
        }
        return delete;
    }

5.StringRedisTemplate常用操作

stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间  

stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作

stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val

stringRedisTemplate.boundValueOps("test").increment(1);//val +1

stringRedisTemplate.getExpire("test")//根据key获取过期时间

stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位 

stringRedisTemplate.delete("test");//根据key删除缓存

stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值 

stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合

stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间

stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据

stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值