Redis

Hi,这里是我的2020年,请查收!

泪湿孤枕 提交于 2021-01-23 06:39:43
Part 1. 回顾 还记得新年第一天,我在刚租的房子给自己做了一顿咖喱饭🍛 (不好意思放照片...) ,然后回顾并展望了一下自己的 2020。 2019 小结 - Notion 截图 转眼间,2020 就过去了。 总的来说 ,今年小目标 (比如博客 10 w 访问量) 完成得不错,但大方向上因为自己的 "贪玩" 有些没跟上。 如果给今年一个 关键词 的话,那么就是: 迷茫 。 今年我没有工作,当着 MC 的自由开发者,开发着 自己的组件 。 一点一点看着自己的想法在另一个"平行世界"实现,还是挺有成就感的,特别是还有人愿意为此"买单"。 有一天迸发了一个灵感,我花了 两个小时 实现了 (特别简单一个东西) ,后来靠着这个组件陆续进账了快 2w (这比我花一个月制作的大型组件还卖得好) 。 这让我明白了两件事,一是我进入了一个 创意优先 的环境,努力和技术都显得不那么重要;二是这个完全不同的赛道让我第一次感知到了 世界的多样性 ,让我开始重新审视起自己过去的工作和生活,追求和选择,我感到前所未有的迷茫。 我们自己实现的 PSP 简单还原 跨越了生存问题,没有工作和生活各方面的束缚,我开始思考自己真正享受什么,喜欢什么,究竟想要怎么样活。 享受写完文章发表的舒心就认真交付每一篇文章,不喜欢假装热闹的聚会就礼貌拒绝每一次邀约。 坦诚的面对自己内心的声音,开始学着接受自己,有被讨厌的勇气

马蜂窝支付中心架构演进

时光毁灭记忆、已成空白 提交于 2021-01-23 05:32:29
为了更好地支持交易业务的快速发展,马蜂窝支付中心从最初只支持基础支付和退款的「刀耕火种」阶段,经历了架构调整的「刮骨疗伤」阶段,完成了到实现综合产品平台形态的「沉淀蓄力」阶段的演进。 目前,马蜂窝支付中心集成了包括基础订单、收银台、路由管理、支付通道、清算核对、报表统计等多种能力,为马蜂窝度假(平台、定制)、交通(机票、火车票、用车)、酒店(开放平台、代理商)等近 20 条业务线提供服务。本文将围绕支付中心整体演变过程中不同阶段的核心部分进行简要介绍。 一、支付中心 1.0 初期为快速响应业务的支付、退款以及一些基础需求,支付中心主要负责接入支付通道(支付宝、微信、连连等),由各业务线分别实现收银台,然后调用支付中心进行支付。业务系统、支付中心和第三方通道的交互流程图如下: 各系统交互流程为: 业务线将订单信息封装后请求到支付中心 支付中心对订单信息简要处理后增加支付信息请求到第三方支付通道 第三方支付通道将支付结果异步回调到支付中心 支付中心将第三方响应的数据简易处理后同步通知到各业务系统 业务系统进行逻辑处理、用户通知及页面跳转等 业务发展初期,业务量较小,交易场景也比较单一,这样的设计可以快速响应业务需求,实现功能。但当业务复杂性不断提高,接入的业务也越来越多时,该架构就显得力不从心了。各业务线需要重复开发一些功能,并且支付中心不具备整体管控能力,开发维护成本越来越大

Express+Socket.IO 实现简易聊天室

删除回忆录丶 提交于 2021-01-23 03:59:22
代码地址如下:<br> http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: 首先是登录页面: 接下来就是聊天页面: Socket.IO是Node.js的一个模块,它提供通过WebSocket进行通信的一种简单方式,WebSocket协议很复杂,但是Socket.IO提供了服务器和客户端双方的组件,所以只需要一个模块就可以给应用程序加入对WebSocket的支持,而且还能支持不同的浏览器哦。关于其详细介绍请参考官网 SocketIO 官网 ,这里呢我们还是直接上代码。 首先是创建 Socket 服务, 我们的项目启动文件 bin/www,我们就来修改它: // bin/www var app = require('../app'); var debug = require('debug')('websocket:server'); var http = require('http'); /** * Get port from environment and store in Express. */ var port = normalizePort(process.env.PORT || '3070'); app.set('port', port); /*

Spring Data Redis 使用Lettuce在Redis集群中无法高可用

落爺英雄遲暮 提交于 2021-01-23 00:27:25
Spring Data Redis 使用Lettuce在Redis集群中无法高可用 Spring boot 2.1.X 下Spring-data-redis-start 使用 Lettuce 作为Redis连接池 问题场景 在App运行期间Redis集群中某个Master节点 Shutdown,导致应用连接Redis报错,错误信息 连接超时。 解决方案 Lettuce 解决方法 使用 RedisClusterClient.reloadPartitions 自动reload pattitions。 链接地址: https://lettuce.io/core/release/reference/index.html#redis-cluster.refreshing-the-cluster-topology-view Spring-data-redis 解决方法 重写 RedisConnectionFactory Bean @Data @Component public class RedisConfig { @Autowired RedisProperties redisProperties; @Bean public RedisConnectionFactory newLettuceConnectionFactory() { ClusterTopologyRefreshOptions

spring-data-redis lettuce cluster scan 问题

假如想象 提交于 2021-01-22 21:07:31
如果redis 集群中某一台master down ,并且由一台slave 节点升级为master ,在使用spring-data-redis 执行scan 的时候还是会继续去连接down 的节点。导致异常。看了下是lettuce 的问题。因为原生的lettuce 使用也有问题。解决方案,就是过滤掉down 的节点。 Partitions partitions = connection.getPartitions(); System.out.println(partitions); RedisAdvancedClusterCommands<String, String> sync = connection.sync(); for (RedisClusterNode partition : partitions) { if (partition.isConnected() && partition.is(RedisClusterNode.NodeFlag.MASTER)) { RedisClusterCommands<String, String> syncConnection = sync.getConnection(partition.getNodeId()); KeyScanCursor<String> scan = syncConnection.scan(match);

miner2 挖矿病毒

冷暖自知 提交于 2021-01-22 16:31:58
说一说被挖矿事件搞的我想杀人的事!!!! 2019年9月18日,发现服务器被黑,用亚马逊服务器挖矿。 服务器部署组件:nginx redis mongodb jdk 具体症状如下: 安装mongodb,启动mongodb后,发现mongo命令被莫名的删除,无法进入数据库,php程序报错内存不足,使用top命令查看发现有个miner2的进程占用cpu100%, 使用lsof -p $pid 号 发现进程是由一个叫/tmp/miner2的脚本启动起来的,然而将文件删除,进程杀掉,无任何作用,谷歌,百度 ,各种检查问题,终于在百度上查到这样一篇文章: 利用Redis未授权访问漏洞进行门罗币(XMR)挖矿事件分析 一、 概述 2019年8月30日,安洵信息星际实验室蜜网捕获到利用Redis未授权访问漏洞的攻击行为。Redis因配置不当可以导致未授权访问,被攻击者恶意利用。 当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。 部分服务器上的Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),以及该端口可以通过公网直接访问,如果没有采用相关的策略

单点登录的三种实现方式

人走茶凉 提交于 2021-01-22 15:30:02
转自: 张永恒 cnblogs.com/yonghengzh/p/13712729.html 前言 实现方式一:父域 Cookie 实现方式二:认证中心 实现方式三:LocalStorage 跨域 补充:域名分级 前言 在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的。当用户登录成功后,一般会将登录状态记录到 Session 中,或者是给用户签发一个 Token,无论哪一种方式,都需要在客户端保存一些信息(Session ID 或 Token ),并要求客户端在之后的每次请求中携带它们。 在这样的场景下,使用 Cookie 无疑是最方便的,因此我们一般都会将 Session 的 ID 或 Token 保存到 Cookie 中,当服务端收到请求后,通过验证 Cookie 中的信息来判断用户是否登录 。 单点登录(Single Sign On, SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。 举例来说,百度贴吧和百度地图是百度公司旗下的两个不同的应用系统,如果用户在百度贴吧登录过之后,当他访问百度地图时无需再次登录,那么就说明百度贴吧和百度地图之间实现了单点登录。 单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的,要实现共享登录状态,就要先共享 Session,比如可以将

Ansible 之 自动化部署redis主从(单机)

隐身守侯 提交于 2021-01-22 15:29:47
一、playbook文件redis.yaml --- - hosts: test vars_files: - vars.yml remote_user: "{{user}}" become: yes tasks: - name: "安装epel源" command: yum -y install epel-release - name: "安装redis" yum: name: redis state: latest - name: "修改redis配置文件监听IP为本机" lineinfile: path: /etc/redis.conf regexp: '^bind 127' line: bind {{master_redis}} - name: "设置开机启动" service: name: redis enabled: yes - name: "启动主库redis6379端口" service: name: redis state: started - name: "制作从库配置文件" command: cp /etc/redis.conf /etc/redis_slave.conf - name: "创建从库的数据存放位置" command: mkdir -p /var/lib/redis_slave - name: "编辑从库配置文件的绑定IP" lineinfile:

如何成为一名合格的推荐系统工程师?

ぃ、小莉子 提交于 2021-01-22 15:10:57
由于近些年深度学习技术的飞速发展,大力加速推动了AI在互联网以及传统各个行业的商业化落地,其中, 推荐系统 、计算广告等领域彰显的尤为明显。由于推荐系统与提升用户量以及商业化变现有着密不可分的联系,各大公司都放出了众多推荐系统相关职位,且薪水不菲,目前发展势头很猛。 但是,这里存在几个问题,很多欲从事推荐系统的同学大多数学习的方式是自学,1、往往是学了很多的推荐算法模型,了解些推荐里常用的算法,如:协同过滤、FM、deepFM等, 但是却不清楚这些模型在工业界推荐系统中是如何串联、如何配合、有哪些坑,哪些trick的,导致无论面试还是真正去业界做推荐系统,都会被推荐领域的”老枪老炮“们一眼识别出小白属性 。2、对于算法原理理解不深刻,这就会导致实际应用时不能很好地将模型的性能发挥出来,另外面试时对于大厂面试官的刨根问底,只能是眼睁睁的丢掉offer。 CF、FM、DSSM、DeepFM等这些推荐业界明星模型,你真的清楚他们的内部运行原理以及使用场景吗?真的了解FM模型与SVM有什么相似之处吗?FM固然可以用作为打分模型,但它可以用来做matching吗,如果可以,如何做?item2Vec模型在业界是如何缓解冷启动的问题的?双塔模型优势在哪?深度模型到底是如何做matching的,是离线计算好结果还是实时的对网络进行前向计算?DeepFM具体实现时

How do I compile Redis so that I can upload and run it on shared hosting?

*爱你&永不变心* 提交于 2021-01-22 14:39:32
问题 I need to run Redis on my shared hosting account, but I am unable to compile on the server because of the nature of shared hosting. I have SSH access, but my hosting provider told me that I would need to compile Redis first and then upload it to the server. I'm not sure how to go about this, and the only other person that asked this question on here never got a response. So: how do I compile Redis so that I can upload it to and run it on my shared hosting account? 回答1: In my opinion the