Redis

Python常用的标准库以及第三方库有哪些?

拟墨画扇 提交于 2021-02-14 11:00:35
Python常用的标准库以及第三方库有哪些? 20个必不可少的Python库也是基本的第三方库 读者您好。今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们。他们是: Requests.Kenneth Reitz写的最富盛名的http库。每个Python程序员都应该有它。 Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的。用过它之后你就不会再想用别的同类库了。 wxPython.Python的一个GUI(图形用户界面)工具。我主要用它替代tkinter。你一定会爱上它的。 Pillow.它是PIL(Python图形库)的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。 SQLAlchemy.一个数据库的库。对它的评价褒贬参半。是否使用的决定权在你手里。 BeautifulSoup.我知道它很慢,但这个xml和html的解析库对于新手非常有用。 Twisted.对于网络应用开发者最重要的工具。它有非常优美的api,被很多Python开发大牛使用。 NumPy.我们怎么能缺少这么重要的库?它为Python提供了很多高级的数学方法。 SciPy.既然我们提了NumPy,那就不得不提一下SciPy。这是一个Python的算法和数学工具库,它的功能把很多科学家从Ruby吸引到了Python。 matplotlib

秒杀系统架构解密,不是所有的秒杀都是秒杀!

久未见 提交于 2021-02-14 08:52:02
写在前面 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了! 究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。 电商系统架构 在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。比如每年的618、双11大促,小米新品促销等业务场景,就是典型的秒杀业务场景。 我们可以将电商系统的架构简化成下图所示。 由图所示,我们可以简单的将电商系统的核心层分为:负载均衡层、应用层和持久层。接下来,我们就预估下每一层的并发量。 假如负载均衡层使用的是高性能的Nginx,则我们可以预估Nginx最大的并发度为:10W+,这里是以万为单位。 假设应用层我们使用的是Tomcat,而Tomcat的最大并发度可以预估为800左右,这里是以百为单位。 假设持久层的缓存使用的是Redis,数据库使用的是MySQL,MySQL的最大并发度可以预估为1000左右,以千为单位。Redis的最大并发度可以预估为5W左右,以万为单位。 所以,负载均衡层

【高并发】秒杀系统架构解密,不是所有的秒杀都是秒杀!!

回眸只為那壹抹淺笑 提交于 2021-02-14 08:51:41
究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。 电商系统架构 在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。 比如每年的618、双11大促,小米新品促销等业务场景,就是典型的秒杀业务场景。 我们可以将电商系统的架构简化成下图所示。 由图所示,我们可以简单的将电商系统的核心层分为:负载均衡层、应用层和持久层。接下来,我们就预估下每一层的并发量。 假如负载均衡层使用的是高性能的Nginx,则我们可以预估Nginx最大的并发度为:10W+,这里是以万为单位。 假设应用层我们使用的是Tomcat,而Tomcat的最大并发度可以预估为800左右,这里是以百为单位。 假设持久层的缓存使用的是Redis,数据库使用的是MySQL,MySQL的最大并发度可以预估为1000左右,以千为单位。Redis的最大并发度可以预估为5W左右,以万为单位。 所以,负载均衡层、应用层和持久层各自的并发度是不同的,那么,为了提升系统的总体并发度和缓存,我们通常可以采取哪些方案呢? (1)系统扩容 系统扩容包括垂直扩容和水平扩容,增加设备和机器配置,绝大多数的场景有效。 (2)缓存 本地缓存或者集中式缓存,减少网络IO

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

戏子无情 提交于 2021-02-14 08:37:50
点击上方蓝色“ 冰河技术 ”,关注并 选择“设为星标” 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。 自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。 为使更多童鞋受益,现给出开源框架地址: https://github.com/sunshinelyz/mykit-delay PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码 。 前言 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多小伙伴仍然停留在只是简单的提供接口(CRUD)阶段,不知道学习的并发知识如何运用到实际项目中,就更别提如何构建高并发系统了! 究竟什么样的系统算是高并发系统?今天,我们就一起解密高并发业务场景下典型的秒杀系统的架构,结合高并发专题下的其他文章,学以致用。 电商系统架构 在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。比如每年的618、双11大促,小米新品促销等业务场景,就是典型的秒杀业务场景。 我们可以将电商系统的架构简化成下图所示。 由图所示,我们可以简单的将电商系统的核心层分为

微服务网关白名单设计 | 水木双

假如想象 提交于 2021-02-14 00:17:17
场景 我们的微服务网关(go 编写)需要增加具体的内网系统接入白名单认证,白名单有 IP 地址、系统名称两种数据,内网的系统部署方式各式各样, 微服务、单机、多机负载均衡、k8s、docker 原生等等,数据总数约 40W 个。我们的目的是需要验证 IP 是否在我们的白名单列表中即可,存在则可访问服务,不存在则拒绝访问。 解决方案 方案 1 IP 白名单列表不适合放在数据库,数据库查询有耗时,选择放在 nosql 上,最终我们选择了 redis。数据结构的选择, redis 支持 string、list、hash、set、zset,把白名单实体(IP 或者应用名)当做一个 key,实际的数据我们可以不储存,我们只要寻找是否存在 key 来判断是否存在白名单就可以了,所以具体用什么数据类型不重要,直接用 string 就好,所以总结一下方案 1,白名单实体做 redis 的 key,用判断 redis 的 key 是否 exists 去验证白名单。 优点: 用 key exists 的方式判断白名单实体是否存在比较快速,性能好 缺点: 每次验证都要连接 redis,并发量大的时候,比较耗资源 方案 2 把所有的白名单实体,包括 IP、应用名以 string 的数据结构全部储存在 redis 的一个 key,每次验证白名单时,都从 key 获取 value,然后判断应用名、IP

Redis设置和更新Key的过期时间

我是研究僧i 提交于 2021-02-13 22:43:46
设置成功返回 1 。 当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0 。 redis> SET cache_page " www.google.com " OK redis > EXPIRE cache_page 30 # 设置过期时间为 30 秒 (integer) 1 redis > TTL cache_page # 查看剩余生存时间 (integer) 23 redis > EXPIRE cache_page 30000 # 更新过期时间 (integer) 1 redis > TTL cache_page (integer) 29996 源文:https://blog.csdn.net/u012045045/article/details/82901876 来源: oschina 链接: https://my.oschina.net/u/4270692/blog/4133098

最新 美团java校招面经 (含整理过的面试题大全)

你离开我真会死。 提交于 2021-02-13 22:42:02
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火、京东、去哪儿、美团等10家互联网公司的校招Offer,因为某些自身原因最终选择了美团。6、7月主要是做系统复习、项目复盘、LeetCode与牛客刷题等准备工作,并且投了字节跳动、拼多多、猿辅导在内的几家公司的提前批,当然还是挂在了简历,因为毕竟自己的学校、学历、项目经验肯定比不过牛客网上那些大厂实习的大佬了,有时间也给自己做个总结,也希望能帮助到大家 (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) 校招心得 注重实力,保持良好心态 :面试过程中,继续巩固好自己的技术栈,然后保持一个良好的心态,尤其是还没有Offer的时候,心态别崩,其实到最后大家都会找到工作的,唯一的区别就是公司的方向、规模、待遇方面,也别太在意别人拿到了牛X的Offer,尤其是牛客网,天天神仙打架,刚开始自己也是很纳闷,怎么就能这么牛,最后也都见怪不怪了~。好多之前一直没Offer的人,可能突然某一天就收获到了几份Offer,所以不断提升自己的综合能力才是关键,与其在这羡慕别人,不如让自己心态沉静下来,认真复习、厚积薄发。 多交流,多思考

「民工哥技术之路」2019年 5 月文章集合

梦想的初衷 提交于 2021-02-13 19:28:45
点击上方 “ 民工哥技术之路 ” 选择“星标” 每天 为你 分享 不一样的干货 读者福利!多达 2048G 各种资源免费赠送 之前已经整理到4月份: 我把公众号所有的精华文章都整理出来了 , 后面将陆续整理当年每个月的文章集合,继而将每年的文章统一成一个合集,方便后面的读者查看与检索。整理不易,如有帮助,希望大家动手 点个 在看 与 转发分享 支持一波。 以下是5月份文章集合「点击标题跳转阅读」: 强大!Nginx 配置在线一键生成“神器” 构建高效安全的Nginx Web服务器 Prometheus 使用总结:我踩过得那些坑 学习Docker,新手最容易犯的11个错误! 10个小技巧提高 Kubernetes 容器效率 深度好文:Nginx 是如何启动并处理 http 请求的? 使用 Docker-compose 一键部署gitlab 高逼格企业级MySQL数据库备份方案,原来是这样.... Redis 这么火,它都解决了哪些问题? 面试必问的 Mysql 四种隔离级别,看完吊打面试官 高可用数据库主从复制延时的解决方案 服务器性能优化的正确姿势(好文推荐) 一篇超实用的服务异常处理指南 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系 你头疼的ELK难题,本文几乎都解决了 3台廉价机器每秒写入2百万!Kafka为什么那么快? 超全|138 条 Vim 命令

具有完整讲解文档的7个Java开源项目,值得一学!

a 夏天 提交于 2021-02-13 17:17:40
最近看了一个开源项目RuoYi-Vue,感觉挺不错的 所以,你学到了啥? emmm,学会了前后端分离,多数据源运用?好像没其它了… 嗐,这么好的一个开源项目你就学了这点东西? 你有啥好建议呀,怎么学习开源项目? 我给你几个主流项目笔记,是一个大神整理和分享的,你可以参考学习,提高效率! 项目一: cloud-platform 学习重点: 服务鉴权中心 用户间鉴权 服务之间鉴权 springcloud组件大回顾 图文笔记: 视频讲解: 项目二: Guns 学习重点: map+warpper模式 Api数据传输安全 数据范围限定 多数据源、jwt 图文笔记: 视频链接: 项目三: bootshiro 学习重点: restful接口设计 前后端分离 数据传输动态秘钥加密 jwt过期自动刷新 图文讲解: 项目四: vueblog 学习重点: 如何搭建一个脚手架 前后端分离如何对接 如何开发Vue+element-ui项目 从0到1开发一个项目的完整教程 图文讲解: 视频讲解: 项目五: renren-fast 学习重点: 项目技术框架分析 前后端分离-token机制 安全防范模块--预防xss攻击与sql注入 多数据源的使用分析总结 如何Docker部署项目 图文文档目录: 项目六: miaosha 学习重点: 秒杀系统场景特点与设计要点分析 高并发优化方向 秒杀限流处理

秒杀系统后台实现详解

雨燕双飞 提交于 2021-02-13 16:39:13
秒杀后台实现 本文主要讲解项目实战中秒杀如何解决下面问题: 1)实现秒杀异步下单,掌握如何保证生产者&消费者消息不丢失 2)实现防止恶意刷单 3)实现防止相同商品重复秒杀 4)实现秒杀下单接口隐藏 5)实现下单接口限流 1 秒杀异步下单 用户在下单的时候,需要基于JWT令牌信息进行登陆人信息认证,确定当前订单是属于谁的。 针对秒杀的特殊业务场景,仅仅依靠对象缓存或者页面静态化等技术去解决服务端压力还是远远不够。 对于数据库压力还是很大,所以需要异步下单,异步是最好的解决办法,但会带来一些额外的程序上的 复杂性。 1.1 秒杀服务-下单实现 1)将tokenDecode工具类config放入秒杀服务并声明Bean public static void main(String[] args){ SpringApplication.run(SeckillApplication,class,args); } @Bean public TokenDecode tokenDecode(){ return new TokenDecode(); } 2)更新秒杀服务启动类,添加redis配置 /** * 设置 redisTemplate 的序列化设置 * @param redisConnectionFactory * @return */ @Bean public RedisTemplate