很多应用上都有用户签到的功能,尤其是配合积分系统一起使用.现在有以下需求: 签到1天得1积分,连续签到2天得2积分,3天得3积分,3天以上均得3积分等. 如果连续签到中断,则重置计数,每月重置计数. 显示用户某月的签到次数和首次签到时间. 在日历控件上展示用户每月签到,可以切换年月显示. ... 功能分析 对于用户签到数据,如果直接采用数据库存储,当出现高并发访问时,对数据库压力会很大,例如双十一签到活动.这时候应该采用缓存,以减轻数据库的压力,Redis是高性能的内存数据库,适用于这样的场景.…
一.场景需求 适用场景如签到送积分.签到领取奖励等,大致需求如下: 比如签到1天送1积分,连续签到2天送2积分,3天送3积分,3天以上均送3积分等. 如果连续签到中断,则重置计数,每月初重置计数. 显示用户某个月的签到次数和首次签到时间. 在日历控件上展示用户每月签到情况,可以切换年月显示……等等. 二.代码 以下代码没有积分逻辑,只有签到 import datetime import redis class Redis(object): def __init__(self): self.red…
Redis实战篇 1 Redis 客户端 1.1 客户端通信 原理 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 . 客户端和服务器发送的命令或数据一律以 \r\n (CRLF 回车+换行)结尾. 如果使用 wireshark 对 jedis 抓包: 环境:Jedis 连接到虚拟机 202,运行 main,对 VMnet8 抓包. 过滤条件:ip.dst==192.168.8.202 and tcp.port in {6379} set qingshan 抓包…
场景需求 适用场景如签到送积分.签到领取奖励等,大致需求如下: 签到1天送1积分,连续签到2天送2积分,3天送3积分,3天以上均送3积分等. 如果连续签到中断,则重置计数,每月初重置计数. 当月签到满3天领取奖励1,满5天领取奖励2,满7天领取奖励3--等等. 显示用户某个月的签到次数和首次签到时间. 在日历控件上展示用户每月签到情况,可以切换年月显示--等等. 设计思路 对于用户签到数据,如果每条数据都用K/V的方式存储,当用户量大的时候内存开销是非常大的.而位图(BitMap)是由一组bit…
场景需求 适用场景如签到送积分.签到领取奖励等,大致需求如下: 签到1天送1积分,连续签到2天送2积分,3天送3积分,3天以上均送3积分等. 如果连续签到中断,则重置计数,每月初重置计数. 当月签到满3天领取奖励1,满5天领取奖励2,满7天领取奖励3……等等. 显示用户某个月的签到次数和首次签到日期. 在日历控件上展示用户每月签到情况,可以切换年月显示……等等. 设计思路 对于用户签到数据,如果每条数据都用Key/Value的方式存储,当用户量大的时候内存开销是非常大的.而位图(BitMap)是…
在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合. 常见的场景如下: 给一个 userId ,判断用户登陆状态: 显示用户某个月的签到次数和首次签到时间: 两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数: 通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万.千万级别的用户数量,或者千万级别.甚至亿级别的访问信息. 所以,我们必须要选择能够非常高效地统计大量数据(例如亿级)的集合类型. 如何选择合适的数据集合,我们首先要了解常用的统计模式…
在移动应用的业务场景中,我们需要保存这样的信息:一个 key 关联了一个数据集合,同时还要对集合中的数据进行统计排序. 常见的场景如下: 给一个 userId ,判断用户登陆状态: 两亿用户最近 7 天的签到情况,统计 7 天内连续签到的用户总数: 统计每天的新增与第二天的留存用户数: 统计网站的对访客(Unique Visitor,UV)量 最新评论列表 根据播放量音乐榜单 通常情况下,我们面临的用户数量以及访问量都是巨大的,比如百万.千万级别的用户数量,或者千万级别.甚至亿级别的访问信息.…
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间. 二.BitMap算法基本描述 BitMap 是使用 bit位来标记某个元素对应的value,而key 即是该元素,因此对于之前位数存储换成bit位存储数据能大大的节省存储空间. 三.BitMap的实现思想 假设我们要对于0-7内的5个元素(4,7,2,5,3)进行排序(假设元素没有重复)…
不知不觉我的第一个小程序已经上线一周了,uv也稳定的上升着. 很多人说我的小程序没啥用,我默默一笑,心里说:“它一直敦促我学习,敦促我进步”.我的以一个小程序初衷是经验分享,目前先把经验分享到博客园,边学习边完善小程序.同时我会持续学习,持续更新,功能定会一天天的完善起来. 欢迎大家扫码体验. 闲话少叙,今天我们一起来练习LayaAirIDE搭建游戏开始界面. 既然要开发游戏,那自然少不了图片素材,大家可以根据实际情况自行备图.大致一下几种素材图片: 1.一张背景图片(750*1333) 2.开…
今天是Redis实战系列的第一讲,先从如何搭建一个Redis实例开始. 下面介绍如何在Docker.Windows.Linux下安装. Docker下安装 1.查看可用的 Redis 版本 访问 Redis 镜像库地址:https://hub.docker.com//redis?tab=tags. 默认是最新版本 redis:latest. 2.取最新版的 Redis 镜像 $ docker pull redis:latest 3.查看本地镜像 使用以下命令查看是否已经拉取了 redis 镜像:…