Redis

python技术面试题(十八)

左心房为你撑大大i 提交于 2021-01-30 10:29:32
正文共: 992 字 5 图 预计阅读时间:3 分钟 每日分享 Children are wonderfully confident in their own imaginations. Most of us lose this confidence as we grow up. 孩子们对自己的想象力非常自信。但是随着我们的成长,大多数人都失去了信心。 猪猪语录 : 今天的分享由我们的猪猪同学提供。 很多时候蒙蔽我们双眼的不是假象,而是自己的执念。 承认自己并非你所以为的那种人,称得上是一种相当可怕的经历。 python技术面试题(十八) 1.给定一个列表,使用sort对其进行去重操作,从最后一个元素开始。 ids = [ 1 , 4 , 3 , 3 , 4 , 2 , 3 , 4 , 5 , 6 , 1 ] ids . reverse () news_ids = list ( set ( ids )) news_ids . sort ( key = ids . index ) print ( news_ids ) ---------------- [ 1 , 6 , 5 , 4 , 3 , 2 ] sort()函数 语法: list . sort ( self , key = None , reverse = False ) 用于对原列表进行排序。 key ---

记一次Linux被入侵,服务器变“矿机”全过程

妖精的绣舞 提交于 2021-01-30 09:47:27
周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。 不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。 我放下酸菜馅的包子,SSH 连了一下,被拒绝了,问了下默认的 22 端口被封了。 让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名 :root,还有不足 8 位的小白密码,心里一凉:被黑了! 查找线索 服务器系统 CentOS 6.X,部署了 Nginx,Tomcat,Redis 等应用,上来先把数据库全备份到本地,然后 Top 命令看了一下,有 2 个 99% 的同名进程还在运行,叫 gpg-agentd。 Google 了一下 GPG,结果是: GPG 提供的 gpg-agent 提供了对 SSH 协议的支持,这个功能可以大大简化密钥的管理工作。 看起来像是一个很正经的程序嘛,但仔细再看看服务器上的进程后面还跟着一个字母 d,伪装的很好,让人想起来 Windows 上各种看起来像 svchost.exe 的病毒。 继续排查: ps eho command -p 23374netstat -pan | grep 23374 查看 pid:23374 进程启动路径和网络状况,也就是来到了图 1 的目录,到此已经找到了黑客留下的二进制可执行文件。 接下来还有 2 个问题在等着我

记一次 Linux 被入侵,服务器变“矿机”全过程

余生颓废 提交于 2021-01-30 09:34:14
周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。 不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。 我放下酸菜馅的包子,SSH 连了一下,被拒绝了,问了下默认的 22 端口被封了。 让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名 :root,还有不足 8 位的小白密码,心里一凉:被黑了! 查找线索 服务器系统 CentOS 6.X,部署了 Nginx,Tomcat,Redis 等应用,上来先把数据库全备份到本地,然后 Top 命令看了一下,有 2 个 99% 的同名进程还在运行,叫 gpg-agentd。 Google 了一下 GPG,结果是: GPG 提供的 gpg-agent 提供了对 SSH 协议的支持,这个功能可以大大简化密钥的管理工作。 看起来像是一个很正经的程序嘛,但仔细再看看服务器上的进程后面还跟着一个字母 d,伪装的很好,让人想起来 Windows 上各种看起来像 svchost.exe 的病毒。 继续排查: ps eho command -p 23374netstat -pan | grep 23374 查看 pid:23374 进程启动路径和网络状况,也就是来到了图 1 的目录,到此已经找到了黑客留下的二进制可执行文件。 接下来还有 2 个问题在等着我

记一次 Linux 被入侵,服务器变“矿机”全过程

生来就可爱ヽ(ⅴ<●) 提交于 2021-01-30 09:33:34
程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 4.2 分钟。 周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。 不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。 我放下酸菜馅的包子,SSH 连了一下,被拒绝了,问了下默认的 22 端口被封了。 让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名 :root,还有不足 8 位的小白密码,心里一凉:被黑了! 查找线索 服务器系统 CentOS 6.X,部署了 Nginx,Tomcat,Redis 等应用,上来先把数据库全备份到本地,然后 Top 命令看了一下,有 2 个 99% 的同名进程还在运行,叫 gpg-agentd。 Google 了一下 GPG,结果是: GPG 提供的 gpg-agent 提供了对 SSH 协议的支持,这个功能可以大大简化密钥的管理工作。 看起来像是一个很正经的程序嘛,但仔细再看看服务器上的进程后面还跟着一个字母 d,伪装的很好,让人想起来 Windows 上各种看起来像 svchost.exe 的病毒。 继续排查: ps eho command -p 23374netstat -pan | grep 23374 查看 pid:23374 进程启动路径和网络状况,也就是来到了图

一次 Linux 被入侵全过程

[亡魂溺海] 提交于 2021-01-30 09:01:12
0x00 背景 周一早上刚到办公室,就听到同事说有一台服务器登陆不上了,我也没放在心上,继续边吃早点,边看币价是不是又跌了。不一会运维的同事也到了,气喘吁吁的说:我们有台服务器被阿里云冻结了,理由:对外恶意发包。我放下酸菜馅的包子,ssh连了一下,被拒绝了,问了下默认的22端口被封了。让运维的同事把端口改了一下,立马连上去,顺便看了一下登录名:root,还有不足8位的小白密码,心里一凉:被黑了! 0x01 查找线索 服务器系统CentOS 6.X,部署了nginx,tomcat,redis等应用,上来先把数据库全备份到本地,然后top命令看了一下,有2个99%的同名进程还在运行,叫gpg-agentd。 google了一下gpg,结果是: GPG提供的gpg-agent提供了对SSH协议的支持,这个功能可以大大简化密钥的管理工作。 看起来像是一个很正经的程序嘛,但仔细再看看服务器上的进程后面还跟着一个字母d,伪装的很好,让人想起来windows上各种看起来像svchost.exe的病毒。继续 ps eho command -p 23374netstat -pan | grep 23374 查看pid:23374进程启动路径和网络状况,也就是来到了图1的目录,到此已经找到了黑客留下的二进制可执行文件。接下来还有2个问题在等着我: 1、文件是怎么上传的? 2、这个文件的目的是什么

spring boot gateway自定义限流

无人久伴 提交于 2021-01-30 08:34:35
参考: https://blog.csdn.net/ErickPang/article/details/84680132 采用自带默认网关请参照 微服务架构spring cloud - gateway网关限流 ,参数与其唯一的区别是header中多了参数userLevel,值为A或者B 此处实现按传入参数取到不同配置 userLvl.A.replenishRate: 10 userLvl.A.burstCapacity: 100 userLvl.B.replenishRate: 20 userLvl .B.burstCapacity: 1000 自定义限流器 package com.gatewayaop.filter; import com.iot.crm.gatewayaop.common.config.UserLevelRateLimiterConf; import org.springframework.beans.BeansException; import org.springframework.cloud.gateway.filter.ratelimit.AbstractRateLimiter; import org.springframework.cloud.gateway.filter.ratelimit.RateLimiter; import org

Spring Boot 如何使用 Redis 进行 API 防刷限流?

被刻印的时光 ゝ 提交于 2021-01-30 06:55:28
Java技术栈 www.javastack.cn 关注阅读更多优质文章 限流的需求出现在许多常见的场景中: 秒杀活动,有人使用软件恶意刷单抢货,需要限流防止机器参与活动 某api被各式各样系统广泛调用,严重消耗网络、内存等资源,需要合理限流 淘宝获取ip所在城市接口、微信公众号识别微信用户等开发接口,免费提供给用户时需要限流,更具有实时性和准确性的接口需要付费。 API 限流实战 首先我们编写注解类 AccessLimit ,使用注解方式在方法上限流更优雅更方便!Spring Boot 如何集成 Redis 请点击 这里 进行阅读。 三个参数分别代表有效时间、最大访问次数、是否需要登录,可以理解为 seconds 内最多访问 maxCount 次。 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface AccessLimit { int seconds();

Spring Boot项目的接口防刷

落爺英雄遲暮 提交于 2021-01-30 04:30:34
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: import java.lang.annotation.Retention; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** * @author yhq * @date 2018/9/10 15:52 */ @Retention(RUNTIME) @Target(METHOD) public @ interface AccessLimit { int seconds(); int maxCount(); boolean needLogin() default true ; } 拦截器中实现: import com.alibaba.fastjson.JSON; import com.example.demo.action.AccessLimit; import com.example.demo.redis.RedisService; import com

如何在 ASP.Net Core 使用 分布式缓存

你说的曾经没有我的故事 提交于 2021-01-30 01:38:48
ASP.Net Core 提供了多种类型的缓存,除了 内存缓存 和 响应缓存 之外,还提供了对 分布式缓存 的支持。在之前的一篇文章中,我讨论了 ASP.Net Core 的内存缓存。在本文中,我们将讨论如何在 ASP.Net Core 中使用分布式缓存,本篇就拿 Redis 和 SQL Server 作为演示。 什么是分布式缓存 分布式缓存 可用于提高应用程序的性能和可伸缩性,通常 分布式缓存 被多个应用服务器共享,在分布式缓存中,缓存的数据不会落在某些个别的web服务器内存中,这些缓存数据采用集中化存储,这样多个应用服务器都可以直接使用,这样做的好处在于,如果任何一个服务器宕机或者停止响应,其他的服务器仍然能够检索缓存的数据。分布式缓存的另一个优点是,缓存的数据在服务器重启后仍然存在,当你的应用集群扩展时,并不会对缓存服务器造成任何影响。 要想在 ASP.NET Core 中使用分布式缓存,需要用到 IDistributedCache 接口,在下一节中,我们将会一起讨论 IDistributedCache 和 IMemoryCache 接口的区别。 IDistributedCache 接口 在.Net Core 中用于分布式缓存的 IDistributedCache 接口要比 单机版的 IMemoryCache 接口更复杂,先来看一下 IMemoryCache 接口定义。

using map to cache for around 5000 entries in Javascript apllication VS Redis

我们两清 提交于 2021-01-29 20:49:08
问题 I have a PRICE_MAPPER table at my DB It has around 5000 entries Price is determined on 3 entry types A B C ---> 300 (col1:A , col2:B , col3:C , colPrice:300) X Y Z ---> 500 .. and around 5000 of such entries (3 unique combinations determining a price) Planning to put these in a MAP at my Nodejs application Concern : I need advice, putting such a heavy data at my Nodejs application, would that be good decision or bad, as Nodejs is not for memory intensive tasks. I can cache this data at REDIS