Redis

十一放假通知!假期有变,都看看吧

蓝咒 提交于 2020-11-21 06:17:31
点击上方 “ 民工哥技术之路 ” 选择“星标” 每天 10点 为你 分享 不一样的干货 读者福利!多达 2048G 各种资源免费赠送 十一国庆节到了! 有的人已经把国庆7天假期安排好了。 1号在家看全国高速堵车。 2号在家看各地景区排队。 3号在家看全国酒店涨价。 4号在家看游客到处被宰。 5号在家看买不到火车票。 6号在家看全国高速又堵。 7号在家看东南西北进不了城。 另外,姑娘们到高速路去相亲吧: 从车看财产,从态度看性格, 从憋尿时间看肾功能! 十一七天假预祝各位国庆出行愉快!哈哈哈 这个国庆,在景区哭或者在家里笑,你选哪一样? 说到景区,到时候肯定是这样! 十一七天假预祝各位国庆出行愉快!哈哈哈 敦煌 鸣沙山 十一七天假预祝各位国庆出行愉快!哈哈哈 十一七天假预祝各位国庆出行愉快!哈哈哈 内蒙古 额济纳旗 十一七天假预祝各位国庆出行愉快!哈哈哈 十一七天假预祝各位国庆出行愉快!哈哈哈 四川 稻城亚丁 十一七天假预祝各位国庆出行愉快!哈哈哈 十一七天假预祝各位国庆出行愉快!哈哈哈 四川 九寨沟 十一七天假预祝各位国庆出行愉快!哈哈哈 十一七天假预祝各位国庆出行愉快!哈哈哈 湖南 凤凰古城 十一七天假预祝各位国庆出行愉快!哈哈哈 重庆 解放碑 湖南 张家界玻璃栈桥 苏州 苏州园林 ,我们小分队在滇西北找矿。小分队一共8人,其中4名警卫战士每人配备一支冲锋枪。一天,出发前

案例说明flink的udf

旧城冷巷雨未停 提交于 2020-11-21 05:50:45
本文会主要讲三种udf: 用户自定义函数是非常重要的一个特征,因为他极大地扩展了查询的表达能力。本文除了介绍这三种udf之外,最后会介绍一个redis作为交互数据源的udf案例。 注册用户自定义函数 在大多数场景下,用户自定义函数在使用之前是必须要注册的。对于Scala的Table API,udf是不需要注册的。 调用TableEnvironment的registerFunction()方法来实现注册。Udf注册成功之后,会被插入TableEnvironment的function catalog,这样table API和sql就能解析他了。 Scalar Functions 标量函数 标量函数,是指返回一个值的函数。标量函数是实现将0,1,或者多个标量值转化为一个新值。 实现一个标量函数需要继承ScalarFunction,并且实现一个或者多个evaluation方法。标量函数的行为就是通过evaluation方法来实现的。evaluation方法必须定义为public,命名为eval。evaluation方法的输入参数类型和返回值类型决定着标量函数的输入参数类型和返回值类型。evaluation方法也可以被重载实现多个eval。同时evaluation方法支持变参数,例如:eval(String... strs)。 下面给出一个标量函数的例子。例子实现的是一个hashcode方法

9月数据库排名出来啦!why哥带你看看数据库到底哪家强!

戏子无情 提交于 2020-11-21 05:26:21
来源: 华章计算机(hzbook_jsj) DB-Engines 最近发布 了 2020 年 9 月份的数据库排名。该网站根据数据库管理系统的受欢迎程度对其进行排名, 实时统计了 35 8种数据库的排名指数 。前 10 名的排行情况详见下图: 1-10排名情况 在国产数据库异军突起的现在,Oracle、 MySQL 、 Microsoft SQL Server 前三的宝座短时间内怕是无可超越。 PostgreSQL 也稳居第四名,它包括了可以说是目前世界上最丰富的数据类型的支持,还是全功能的自由软件数据库,很长时间以来,PostgreSQL是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 推荐语: 《MySQL技术内幕:InnoDB存储引擎(原书第2版) 》 资深MySQL专家撰写,全球知名 MySQL 数据库服务提供商 Percona 公司 CTO 作序推荐,国内多位数据库专家联袂推荐。 推荐语: 《数据库高效优化》 本书以大量案例为依托,系统讲解了SQL语句优化的原理、方法及技术要点,尤为注重实践 , 在章节中引入了大量的案例,便于学习者实践、测试,反复揣摩。 推荐语: 《 PostgreSQL修炼之道:从小工到专家 》 P ostgreSQL中国社区资深数据库专家、沃趣科技首席数据库架构师撰写,

xmall商城学习笔记——JWT改造登录

邮差的信 提交于 2020-11-21 04:06:01
文章目录 前言 一、无状态登录是什么? 1.有状态登录 2.无状态登录 3.如何实现无状态 4.JWT 5.JWT交互流程 二、理解原有解决方案! 1.准备util类 2.xmall-manager-web 重点 三.改造项目 总结 前言 之前给大家许诺的给xmall 加上jwt 校验的项目终于弄好了,最近一直加班身心俱疲。 提示:以下是本篇文章正文内容,下面案例可供参考 一、无状态登录是什么? 了解JWT首先要知道什么是无状态登录,什么是有状态登录。 1.有状态登录 有状态登录 :有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。 例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。 缺点是什么? 服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务端,多次请求必须访问同一台服务器 2.无状态登录 微服务集群中的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即: 服务端不保存任何客户端请求者信息 客户端的每次请求必须具备自描述信息

redis自述:年轻MySQL不讲武德,耗子尾汁

社会主义新天地 提交于 2020-11-21 01:46:57
前言 欢迎各位进群973961276一起聊聊技术吹吹牛,每周都会有几次抽奖送专业书籍的活动,奖品虽不甚值钱,但也算个彩头不是 我是Redis 你好,我是Redis,一个叫Antirez的男人把我带到了这个世界上。 说起我的诞生,跟关系数据库MySQL还挺有渊源的。 在我还没来到这个世界上的时候,MySQL过的很辛苦,互联网发展的越来越快,它容纳的数据也越来越多,用户请求也随之暴涨,而每一个用户请求都变成了对它的一个又一个读写操作,MySQL是苦不堪言。尤其是到“双11”、“618“这种全民购物狂欢的日子,都是MySQL受苦受难的日子。 据后来MySQL告诉我说,其实有一大半的用户请求都是读操作,而且经常都是重复查询一个东西,浪费它很多时间去进行磁盘I/O。 后来有人就琢磨,是不是可以学学CPU,给数据库也加一个缓存呢?于是我就诞生了! 出生不久,我就和MySQL成为了好朋友,我们俩常常携手出现在后端服务器中。 应用程序们从MySQL查询到的数据,在我这里登记一下,后面再需要用到的时候,就先找我要,我这里没有再找MySQL要。 为了方便使用,我支持好几种数据结构的存储: String Hash List Set SortedSet Bitmap ······ 因为我把登记的数据都记录在内存中,不用去执行慢如蜗牛的I/O操作,所以找我要比找MySQL要省去了不少的时间呢。

如何解决逻辑删除与数据库唯一约束冲突

こ雲淡風輕ζ 提交于 2020-11-21 01:38:00
前言 不知道大家有没有遇到这么一种业务场景,在业务中有个唯一约束A,当该业务进行逻辑删除后(设置标记为删除状态),再往唯一约束列插入相同的值时,此时会报Duplicate entry,但在业务上,该值时必须要插入的。今天我们就来聊聊处理这种业务场景的几种思路 解决思路 方案一:不采用逻辑删除,直接物理删除 方案二:新建历史表 主表进行物理删除,同时将删除的记录保存到历史表中 方案三:取消表的唯一约束,同时引入redis来保证唯一约束 取消表的唯一约束,在项目中引入redis,通过redis来判重,新增时往redis set记录,删除时,删除redis记录 方案四:变更删除标记为时间戳 将删除状态不以0,1表示,而是以 时间戳 为值,然后将删除状态为与之前的唯一约束A重新组成唯一联合约束index(A、del_flag),删除时变更 del_flag的时间戳 方案五:保留删除标记,同时新建一个字段del_unique_key 保留删除状态位,再新增一个字段del_unique_key,该字段 默认值为0 ,字段类型和大小与主键id保持一致,同时与原先的唯一约束重新组成联合唯一约束index(A,del_unique_key),业务进行逻辑删除,变更del_unique_key的值为 该删除行的主键id 方案的取舍 方案一得从业务的角度上考虑了,如果物理删除,对业务无损,那就无所谓了

高可用架构怎么选?常见多活建设这么一对比就懂了

*爱你&永不变心* 提交于 2020-11-21 00:34:57
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。 服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段,例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。 一、为什么要做多活 随着移动互联网的深入发展,用户增长达到一定规模后,不少企业都会面临高并发业务和海量数据的挑战,传统的单机房在机器容量上存在瓶颈。 在一些极端场景下,有可能所有服务器都出现故障,例如机房断电、机房火灾、地震等这些不可抗因素会导致系统所有服务器都故障从而导致业务整体瘫痪,而且即使有其他地区的备份,把备份业务系统全部恢复到能够正常提供业务,花费的时间也比较长。 为了满足中心业务连续性,增强抗风险能力,多活作为一种可靠的高可用部署架构,成为各大互联网公司的首要选择。 1、多活场景 多活架构的关键点就是指不同地理位置上的系统都能够提供业务服务,这里的“活”是指实时提供服务的意思。 与“活”对应的是字是“备”,备是备份,正常情况下对外是不提供服务的,如果需要提供服务,则需要大量的人工干预和操作,花费大量的时间才能让“备”变成“活。 单纯从描述来看多活很强大,能够保证在灾难的情况下业务都不受影响,是不是意味着不管什么业务,我们都要去实现多活架构呢?其实不是,实现多活架构都要付出一定的代价,具体表现为:

Github Actions 中 Service Container 的使用

时光总嘲笑我的痴心妄想 提交于 2020-11-20 16:26:15
Github Actions 中 Service Container 的使用 Intro 之前写过一个 StackExchange.Redis 的一个扩展,测试项目依赖 redis,所以之前测试一直只是在本地跑一下,最近通过 Github Action 中的 Service Container 来通过 CI 来跑测试,分享一下如何使用 service container 来跑测试,不仅仅是 Redis,数据库等依赖也可以使用这样的方式来测试 Redis Service Container Sample jobs: # Label of the runner job runner-job: # You must use a Linux environment when using service containers or container jobs runs-on: ubuntu-latest # Service containers to run with `runner-job` services: # Label used to access the service container redis: # Docker image image: redis:alpine # Set health checks to wait until redis has started

这是我见过最详细的“Docker学习宝典”,阿里云大佬纯手写总结的!

随声附和 提交于 2020-11-20 16:06:44
前言 什么是Docker?对于很多不了解Docker技术的人来说,Docker可能只是一条“蓝色的鲸鱼”。实际上,Docker技术的流行,还是因为开发人员对它的认可。目前,大部分的互联网公司都在使用docker,包括腾讯、京东、美团、新浪等等,腾讯的盖亚,就是基于docker的,可见docker对于一名开发人员的重要性。 学习docker与其他技术是一样的,从基础出发,由浅入深,熟练掌握docker,成为成熟的开发人员,才能更受大厂青睐。 为了让更多的开发人员学习好docker,这份docker学习宝典贡献给大家吧! 当然文章会将这份docker学习宝典的章节目录内容截图展示出来,若你需要完整的pdf版,请添加VX:tkzl6666 免费领取 第一部分:Docker初级技能(基础入门) 1.重新认识Docker与容器 (what?why?Docker与虚拟化) 内容展示 2.Docker核心概念与安装配置 (核心概念+安装Docker引擎+配置Docker服务+推荐实践环境) 3.使用Docker镜像 (获取镜像+查看镜像信息+搜寻镜像+删除和清理镜像+创建镜像+存出和载入镜像+上传镜像) 4.操作Docker容器 (创建容器+停止容器+进入容器+删除容器+导入和导出容器+查看容器+其他容器命令) 5.访问Docker仓库 (Dokcer Hub公共镜像市场+第三方镜像市场

python3编写网络爬虫23-分布式爬虫

江枫思渺然 提交于 2020-11-20 07:21:21
一、分布式爬虫 前面我们了解Scrapy爬虫框架的基本用法 这些框架都是在同一台主机运行的 爬取效率有限 如果多台主机协同爬取 爬取效率必然成倍增长 这就是分布式爬虫的优势 1. 分布式爬虫基本原理 1.1 分布式爬虫架构 Scrapy 单机爬虫中有一个本地爬取队列Queue 这个队列是利用 deque 模块实现的 如果新的 Request 生成就会放在队列里面 随后 Request被 Scheduler调度 之后 Request 交给 Downloader 执行爬取 简单的调度架构如图 单主机爬虫架构 如果两个 Scheduler同时从队列中取 Request 每个 Scheduler 都有其对应的 Downloader 那么在带宽足够 正常爬取且不考虑队列存取压力 的情况下 爬取效率会翻倍 这样 Scheduler 可以拓展多个 Downloader 也可以多拓展几个 而爬取队列Queue 必须始终为一 也就是所谓的 共享爬取队列 这样才能保证 Scheduler 从队列里调度某个 Request 之后其他 Scheduler 不会重复调度此 Request 就可以多个 Scheduler 同步爬取 这就是分布式爬虫的雏形 简单的调度架构如图 分布式爬虫架构 需要多台主机同时运行爬虫任务协同爬取 而协同爬取的前提就是共享爬取队列 这样各台主机就不要各自维护爬取队列