环境:wamp,redis 要求:安装WAMP,Redis,以及为PHP安装Redis扩展(怎么安装Redis可以看看我前面写的文章) 秒杀功能大致思路:获取缓存列表的长度,如果长度(llen)等于0,就停止秒杀,即秒杀失败,如果长度大于0,则继续运行,先从缓存中移除一个元素(lpop),再进行数据 ...
分类:
Web程序 时间:
2020-12-29 11:26:06
阅读次数:
0
一、Scrapy的简介 Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下 它主要由五大组件和两中间件组成: 五大组件: 1、引擎(ENGINE):用来处理整个系统的 ...
分类:
其他好文 时间:
2020-12-29 11:11:00
阅读次数:
0
Redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。 相关知识:Redis提供6种数据淘汰策略: voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server ...
分类:
数据库 时间:
2020-12-29 11:08:57
阅读次数:
0
字符串对象的编码可以是 int 、 raw 或者 embstr 。 如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr属性里面(将 void* 转换成 long ), 并将字符串对象的编码设置为 int 。 举个例 ...
分类:
其他好文 时间:
2020-12-28 11:51:49
阅读次数:
0
当有两个或以上数量的键被分配到了哈希表数组的同一个索引上面时, 我们称这些键发生了冲突(collision)。 Redis 的哈希表使用链地址法(separate chaining)来解决键冲突: 每个哈希表节点都有一个 next 指针, 多个哈希表节点可以用 next 指针构成一个单向链表, 被分 ...
分类:
其他好文 时间:
2020-12-28 11:43:33
阅读次数:
0
uvloopasyncio 的事件循环的替代方案效率默认大于asyncio的事件循环性能是更高的性能接近gopip install uvloopimport asyncioimport uvloopasyncio.set_event_loop_policy(uvloop.EventLoopPolic ...
分类:
数据库 时间:
2020-12-28 11:42:18
阅读次数:
0
1 概述 1.1 项目理解 数据冗余 数据冗余是指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。可以说增加数据的独立性和减少数据冗余是企业范围信息资源管理和大规模信息系统获得成功的前提条件。 数据冗余或者信息冗余是生产、生活所必然存在的行为,没有好与不好的总体倾向。 如何解决重复ip ...
分类:
其他好文 时间:
2020-12-28 11:05:11
阅读次数:
0
方式?:Redis的setNX() , 做消息id去重 java版本?目前不不?支持设置过期时间//Redis中操作,判断是否已经操作过 TODOboolean flag = jedis.setNX(key);if(flag){//消费}else{//忽略略,重复消费}方式?:redis的 Incr ...
分类:
其他好文 时间:
2020-12-28 10:58:18
阅读次数:
0
前情概要: 和一个同事排查一个Redis的问题的时候,同事突然来了句“你知道Redis的几种持久化方式么?”,很自然的就答道“rdb和aof嘛“,同事则说其实有第三种方式“rdb和aof的混合版”,震惊!!! Redis需要持久化的原因: Redis数据都在内存中,当出现服务挂掉等场景时需要重新启动 ...
分类:
其他好文 时间:
2020-12-25 12:25:28
阅读次数:
0
在实际项目中是否用过消息队列? 这里简单介绍一下Redis消息队列吧,之前有一个服务号消息推送就是用的Redis来做的,因为业务比较单一所以就拿Redis来做; 第一步:创建推送任务; 1.区分任务是即时任务还是延时任务; 2.如果是延时任务可以使用zset(key,time,val),因为zset ...
分类:
其他好文 时间:
2020-12-24 12:01:14
阅读次数:
0