Redis是单进程单线程模型的KV数据库,那为什么还常应用在高并发场景中? 其中一个重要原因是Redis是一个单进程单线程且采用多路I/O复用模型,非阻塞IO技术, 使之可以同时处理多个连接请求(减少网络IO耗时), 也不需要关心锁,线程切换等资源消耗问题;

Read More

redis模糊匹配key时,官方建议不要使用keyssmembers,他们的时间复杂度都是O(N),使用scanzscanhscan等。scan系列增量式迭代命令每次执行的复杂度为O(1), 对数据集进行一次完整迭代的复杂度为O(N), 其中N为数据集中的元素数量。相比keys命令执行时会阻塞掉整个redis线程而言,scan系列则是通过游标分步进行的,不会阻塞redis线程, 且在同一时间,可以有任意多个客户端对同一数据集进行迭代。

Read More

为应用服务提供稳定的数据CURD服务,同时为了进一步提升CURD性能及潜在的问题, 就需要根据实际业务情况及数据体量进行数据库优化修订工作, 关于数据库优化的操作可以从多个方面来总结归纳, 如对SQL语句的优化, 索引的优化, 表结构的优化, 配置的优化等等; 本文从总结实践经验及归纳回顾知识要点的角度来探讨关于SQL语句优化的相关问题;

Read More

限流算法在分布式领域是一个经常被提起的话题,当系统的处理能力有限时,如何阻止计划外的请求继续对系统施压,这是一个需要重视的问题。除了控制流量,限流还有一个应用目的是用于控制用户行为,避免垃圾请求。比如在UGC社区, 用户的发帖, 回复, 点赞等行为都要严格受控,一般要严格限定某行为在规定时间内允许的次数,超过了次数那就是非法行为。

Read More

设计出符合业务需求的数据存储模型至关重要, 合理的数据库表设计不仅能有效的应对业务数据的存储, 还能高效的对已存储的数据进行访问操作; 本文将以数据库设计范式等知识背景来进一步探讨数据库逻辑设计相关问题;

Read More

@一线攻城狮

关注微信公众号 @一线攻城狮

总访问:
总访客: