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

四川 优质高职建设网站在百度做网站推广怎么做

四川 优质高职建设网站,在百度做网站推广怎么做,酷站网官网,江门网站推广技巧场景:统计每个活动的用户访问量,且每个用户仅统计一次。 首先活动表是已经存在了的,一般情况下,我们都会在创建一个用户访问表,其中唯一主键是用户ID活动ID作为唯一主键 create table user_visist_activity_record(i…

场景:统计每个活动的用户访问量,且每个用户仅统计一次。

首先活动表是已经存在了的,一般情况下,我们都会在创建一个用户访问表,其中唯一主键是用户ID+活动ID作为唯一主键

create table user_visist_activity_record(`id` int(11) NOT NULL AUTO_INCREMENT,user_id int(11) NOT NULL COMMENT '用户ID',activity_id  int(11)   NOT NULL COMMENT '活动ID',`create_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人',`update_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人',`create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`deleted_ind` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0未删除,1删除)',PRIMARY KEY (`id`) USING BTREE,
unique index user_activity(user_id,activity_id)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动访问记录表' ROW_FORMAT = Dynamic;

创建了用户活动的访问记录表,用户访问当期活动时,都会查询一次表格内容,来判断用户是否访问过该用户,如果已存在了,则不走后续逻辑。

在深入思考一下,是否有更高效的方式呢,毕竟每次都需要查询数据库一次,而且这种活动,访问的用户也不少。业务也需要统计多少用户访问了当前页面,功能是无法砍掉。为了保证这个活动不影响主数据库,可能会将当前功能拆分出去,且数据库也非主数据库。那如果没有拆分服务的情况下,又该如何解决呢?

Redis BitMap

此时是否有想到通过redis的方式来解决,毕竟查询redis比查询mysql快多了。

简单介绍一下BitMap
BitMap就是位图,其实也就是字节数组(byte array),用二进制表示,只有 0 和 1 两个数字,位图就是用每一个二进制位来存放或者标记某个元素对应的值。通常是用来判断某个数据存不存在的,因为是用bit为单位来存储所以Bitmap本身会极大的节省储存空间。
如下图字符串在计算机里是由二进制的形式保存的。

在redis中有一个bitMap的数据结构,因为每一个bit都是一条记录,只需要把key值设置成活动ID,而bit为设置用户访问的次数,1代表访问过,0则表示没有访问过。那么就不需要创建表格来统计当前用户是否访问过。甚至也不需要对活动表的用户访问数进行更新。这样的操作至少省略了两次数据库的操作。一次是判断用户对当前记录是否访问过,一次是对活动表的用户访问数进行更新。

业务逻辑

string key = "pre" + activityId;
if(redis.has(key)) {// 第一次访问时,没有key的记录// 判断当前活动是否存在,活动是否过期等业务操作//redis.setBit(key, userId, 1);redis.expire(key, expireTime);
} else {if(redis.getBit(key, userId)) {return}redis.setBit(key, userId, 1);
}

redis bitmap三个操作

  1. 添加: SETBIT命令

SETBIT key offset value (offset为偏移量,value设置的值,在上述中,将offset设置为用户ID,value直接设置为1)

  1. 查询:GETBIT命令

GEIBIT KEY OFFSET (offset为偏移量,offset为用户ID)

  1. 统计:BITCOUNT命令

BITCOUNT key 统计整个key上为1的个数

http://www.yayakq.cn/news/293689/

相关文章:

  • 公司如何申请一个网站中小企业服务网
  • 潍坊网站制作班级设计网站建设
  • 长春哪里做网站小程序交易买卖平台
  • 小学网站asp采购网站大全
  • 重庆网站建设挑夹夹虫网页设计如何设置背景
  • 如何升级网站后台怎么查看一个网站做的外链
  • 如何看网站的流量网页设计网站规划报告
  • 西安市网站建设成品网站1688入口网页版怎样
  • 有没有给做淘宝网站的做企业网站一定要企业邮箱嘛
  • 保定网络营销网站河南郑州新闻头条最新事件
  • 百度如何才能搜索到你的网站女装店网站源码
  • 乌海市建设局网站美客多电商平台入驻条件
  • 外贸推广建站蓝颜seo牛印刷外贸好做吗
  • 网站开发前景知乎定制设计的网站
  • php网站开发 教案郑州专业建网站
  • wordpress 网站底部美化动漫制作专业需要美术功底吗
  • 吴忠北京网站建设电商公司组织架构图
  • 手机网站建设维护重庆住房城乡建设网站
  • 网站简繁体转换.rar外贸网站 模板
  • 交流稿 网站建设苏州松陵镇哪里做网站
  • 做网上推广网站社群小程序搭建
  • 合肥网站建设模块网站建设代码标准
  • 做调查的有哪些网站有哪些好的营销网站设计公司
  • 网站建设需要懂什么语言页面跳转
  • 郑州做网站推广地网站建设与维护合同
  • 门户网站建设招标网页设计课程报告总结
  • 烟台网站建设外贸青岛网站建设建议
  • 温州网络公司网站建设wordpress域名地址设置
  • 网站突然没有收录广东企业网站建设
  • 路由器怎么做网站小说网站的图片长图怎么做的