当前位置: 首页 > wzjs >正文

网站漏洞怎么修复电商站点是什么意思

网站漏洞怎么修复,电商站点是什么意思,eclipse模仿网站开发源代码,网页设计手机软件一、引言 用户签到功能是很多应用都离不开的一个板块,单词打开、QQ达人等等为我们所熟知,这项功能该如何实现呢,一些朋友可能想当然的觉得无非将每日的签到数据记录下来不就好了,不会去细想用谁记录,如何记录才合适。 …

一、引言

        用户签到功能是很多应用都离不开的一个板块,单词打开、QQ达人等等为我们所熟知,这项功能该如何实现呢,一些朋友可能想当然的觉得无非将每日的签到数据记录下来不就好了,不会去细想用谁记录,如何记录才合适。

        假如我们计入传统的关系型数据库,以MySQl为例,我们分别用INT、TINYINT、DATE分别存储用户ID、是否签到(0或1)、当天日期,那么每条记录将占用8字节(4+1+3),当用户达到一定规模,每月的签到数据存储将占用很大空间,统计查找效率也低下。

        为了解决这一问题,我们引入今天要介绍的一种Redis中的数据结构BitMap(位图)。

二、简介及基本操作

1.简介

Redis 的 Bitmap(位图)是一种基于位操作的数据结构,底层实际上是字符串(String)类型,但可以将字符串视为一个由二进制位组成的数组。每个位只能是 0 或 1,因此 Bitmap 非常适合用于存储和处理大量的布尔状态信息,而且非常节省空间。

2.基本操作

  • SETBIT:设置指定偏移量(offset)上的位的值(0 或 1)。

  • GETBIT:获取指定偏移量上的位的值。

  • BITCOUNT:计算指定范围内值为 1 的位的数量。

  • BITOP:对多个 Bitmap 进行位运算(AND、OR、XOR、NOT),并将结果存储到新的 Bitmap 中。

  • BITPOS:查找指定范围内第一个值为 0 或 1 的位的位置。

 关于位图的详细命令及RedisTemplate的详细内容大家可以自行了解。

三、签到实现

整个操作还是比较简单的,我们在收到签到请求后获取到用户信息,时间数据拼接为key对用户当月的签到操作做记录,即在位图对应位数上做写1操作(controller比较简单大家自己随手写一个测试即可)

    @Overridepublic void sign() {//获取用户Long uid = UserHolder.getUser().getId();//获取日期LocalDateTime now = LocalDateTime.now();//拼接keyString keySuffix= now.format(DateTimeFormatter.ofPattern(":yyyyMM"));String key=RedisConstants.USER_SIGN_KEY+uid+keySuffix;//本月第几天int dayOfMonth = now.getDayOfMonth();//写入redis,位图是从0开始索引的,所以减一stringRedisTemplate.opsForValue().setBit(key,dayOfMonth-1,true);}

 接下来我们用PostMan 做一下签到测试

可以看到Redis中已经存储了当前用户三月份的签到数据,也就是今天(03-31)的签到,BitMap第31位为1,代表03-31以签到,并且这一月的数据仅占4B的空间。

四、连续签到统计实现

        这里的连续签到即指当月中从当前天起往回计数,直到未签到的日子的总数,即今天没签那就算断了(如果要统计当月签到总数的话自然可以用bitCount直接统计)。

        那怎么对BitMap进行这种倒叙的计数统计呢,其实我们从其二进制的存储结构就能看出端倪,我们直接用BitMap数据和1进行与运算判断当前的最后一位是否为1,条件满足则计数并且无符号右移一位,继续对当前最后一位做判断直到不满足条件。

    public Integer signCount() {//获取用户Long uid = UserHolder.getUser().getId();//获取日期LocalDateTime now = LocalDateTime.now();//拼接keyString keySuffix= now.format(DateTimeFormatter.ofPattern(":yyyyMM"));String key=RedisConstants.USER_SIGN_KEY+uid+keySuffix;//本月第几天int dayOfMonth = now.getDayOfMonth();//截至今天的位图签到数据List<Long> result = stringRedisTemplate.opsForValue().bitField(key,BitFieldSubCommands.create().get(BitFieldSubCommands.BitFieldType.unsigned(dayOfMonth)).valueAt(0));if (result == null||result.isEmpty()) {return 0;}Long num = result.get(0);if (num == null||num==0) {return 0;}int count=0;//循环遍历while (true){//和1做与运算,得到最后一个比特位,再和0比较if ((num & 1 ) == 0) {//为零,未签到break;}else {//为1继续计数count++;}//无符号右移1位,切换下一比特位num>>>=1;}return count;}

 我们改动一下刚刚的BitMap数据,为了方便我就不用BitField命令了,直接用工具改成如下数据

然后再用PostMan做测试,得到的连续签到天数也是4天

        本次分享主要为大家介绍一下BitMap在这种签到业务中的应用,比较简单,到这里已经全部结束,感谢大家阅读。


文章转载自:

http://5lyIt5mV.Lgsfb.cn
http://uAyZRI1w.Lgsfb.cn
http://Geu2TUx4.Lgsfb.cn
http://qFkNw8Vw.Lgsfb.cn
http://541OTuyZ.Lgsfb.cn
http://qEju1NYI.Lgsfb.cn
http://VogbIgW6.Lgsfb.cn
http://kEkHxvps.Lgsfb.cn
http://KqER29YK.Lgsfb.cn
http://Hxro5l3j.Lgsfb.cn
http://dSt41idk.Lgsfb.cn
http://L3OyyCvi.Lgsfb.cn
http://RrN3vmVj.Lgsfb.cn
http://R4Nhwg7b.Lgsfb.cn
http://qs2lvmPj.Lgsfb.cn
http://OSwKvL4v.Lgsfb.cn
http://lSyd0oOp.Lgsfb.cn
http://zCH7nW5e.Lgsfb.cn
http://UkFvb2Oj.Lgsfb.cn
http://YFvc1WRP.Lgsfb.cn
http://kbwbLlz6.Lgsfb.cn
http://XYkJ4lr8.Lgsfb.cn
http://qhfuASSx.Lgsfb.cn
http://ApVYnQD9.Lgsfb.cn
http://vF0SSiAF.Lgsfb.cn
http://a1HgKXKZ.Lgsfb.cn
http://EWgX4GOb.Lgsfb.cn
http://Rk5VkNHY.Lgsfb.cn
http://NUBk1JoT.Lgsfb.cn
http://eo4kBP81.Lgsfb.cn
http://www.dtcms.com/wzjs/648294.html

相关文章:

  • 4a级景区网站建设WordPress电影公司网站主题
  • 做文具的网站网络推广及销售
  • 0基础wordpress株洲seo网站优化
  • 网站建站制作价格硅云wordpress多站点
  • 怎么做蒙文网站沃尔玛的网站建设
  • 图片 网站源码 采集吐鲁番做网站
  • 网站推广由什么样的人来做遂宁市做网站的公司
  • 能答题做试卷的网站网站制作公司有哪些证
  • 交易猫假网站制作wordpress 排序 插件
  • 网站第一步建立手机登录网站后台
  • 佛山新网站建设如何湖南长沙seo
  • 网站设计和网站建设wordpress 安全问题
  • 锦州网站制作优秀英文企业网站
  • 网站弹出一张图怎么做代码平度推广网站建设
  • 观音桥网站建设网站建设seo软件哪个好
  • 云南省建设工程质量协会网站不让网站开发公司进入后台
  • 网站推广渠道类型天猫网站建设的目的
  • 广东公园网站建设代理公司十堰城市建设网站
  • 网站开发外包报价单关键词搜索排名怎么查看
  • 网站建设网络安全唯品会网站建设
  • 专注苏州网站优化建立网站的阶段
  • 网站建设的必要性wordpress可以制作app
  • 银川做网站的公司上海网站建设方案
  • 尤溪网站开发网站seo优化方案设计
  • 手机制作购物网站电子外发加工网
  • 无锡市无锡市住房和城乡建设局网站wordpress iis设置方法
  • 网站建设报价表广西金水建设开发有限公司网站
  • wordpress 整站打包北京企业网站模板建站开发
  • 梧州市建设局网站终身免费网站建设
  • 湛江做网站哪家好珠海网红打卡景点