Redis

C#定时任务之FluentScheduler

Deadly 提交于 2021-01-18 18:59:27
一、业务需求 平台首页,有几个指标统计,产品不要求实时性,觉得一天更新一次可以接受。 最后决定用FluentScheduler定时执行统计,redis缓存结果。 每天晚上1点进行定时任务统计,将统计结果缓存到redis中,业务接口直接从reids里拿统计数据。 二、开始撸代码 方式一:多个任务 + 不同时间段执行(这个没有实现,大家可以使用 一个从0点开始的分钟数,秒数等,自定义一个接口,根据规则去调用Schedule中的方法) using System; using System.Linq; using System.Threading.Tasks; using FluentScheduler; namespace Common { // 自己定义了一个接口,目前只有一个方法,大家可以根据自己的需求添加接口,比如定义一个执行任务的时间接口等 public interface IScheduleTask { void Execute(); } public class ScheduleTask : Registry { public ScheduleTask() { // 获取已加载到此应用程序域的执行上下文中的程序集(因为有延迟加载机制, // 未加载到应用程序域的时候会报错,一般初始化的时候可能会再现问题) // var types = AppDomain

是找茬?还是装B?阿里面试每轮必问的“Spring Boot”意义何在?

瘦欲@ 提交于 2021-01-18 17:00:28
如今微服务如日中天,Spring Boot作为构建Spring Cloud全家桶的基础框架,早已经成长为后端的主流技术了,同时它也是Java工程师面试必问的知识点。 这一点呢,我是深有体会,因为每天都有大量读者都会在小编后台给我留言,说希望多分享一些SpringBoot相关的内容,每天也有大量学员检索SpringBoot相关的视频以及学习资料。 所以,今天小编就来给大家带来一波福利!在这篇文章我会推荐一些优质的 Spring Boot 实战书籍 (Spring Boot实战派以及Spring Boot2实战之旅) 帮助大家深入学习 Spring Boot。文章质量的话,大家可以放心。同时,小编还专门为大家准备了一份突击金三银四的面试必备宝典,有想要获取的小伙伴在文末有领取方式!! 废话不多说,我们直奔主题: Spring Boot实战派 入门篇(1~3章) 基础篇(4~6章) 进阶篇(7~13章) 文章重点 Spring Boot 进阶 本章首先介绍AOP、loC、Servlet容器;然后深入讲解自动配置原理、自定义 Starter、自定义注解:最后讲解异常的处理,以及如何进行单元测试 用ORM操作 SQL数据库 集成安全框架,实现安全认证和授权 集成NoSQL数据库,实现搜索引擎 集成Redis,实现高并发 本章首先介绍Redis的原理、概念、数据类型

灵活且不失高性能,这个 POSIX 共享文件系统值得一用

家住魔仙堡 提交于 2021-01-18 16:55:04
项目名称: JuiceFS 项目作者: Juicedata 开源许可协议: AGPL-3.0 项目地址: https://gitee.com/juicedata/JuiceFS 项目简介 JuiceFS 是一个建立在 Redis 和 S3 等对象存储之上的开源 POSIX 文件系统。它是为云原生环境设计,通过把元数据和数据分别持久化到 Redis 和对象存储中,它相当于一个无状态的中间件,帮助各种应用通过标准的文件系统接口来共享数据。 项目特性 完整 POSIX 兼容:已有应用可以无缝对接; 极致的性能:毫秒级的延迟,近乎无限的吞吐量(取决于对象存储规模); 云原生:完全弹性,很容易实现存储和计算分离架构; 共享:可以被多个客户端同时读写; 文件锁:支持 BSD 锁(flock)及 POSIX 锁(fcntl); 数据压缩:默认使用 LZ4 压缩数据,节省存储空间。 项目架构 JuiceFS 使用 Redis 来存储文件系统的元数据。Redis 是一个开源的内存数据库,可以保障元数据的高性能访问。所有文件的数据会通过客户端存储到对象存储中,以下是它的架构图: JuiceFS 中的文件格式,如下图所示。一个文件首先被拆分成固定大小的 "Chunk",默认 64 MiB。每个 Chunk 可以由一个或者多个 "Slice" 组成,它们是变长的。对于每一个 Slice

[Mysql] [it猿课ityuanke.com]JK时间专栏课44-SQL必知必会

穿精又带淫゛_ 提交于 2021-01-18 05:44:43
课程地址: http://ityuanke.com/thread-465-1-1.html 点击跳转到课程页面 IT猿课(www.ityuanke.com) [it猿课ityuanke.com]JK时间专栏课44-SQL必知必会 数据库教程大全 开篇词 (1讲)  开篇词丨SQL可能是你掌握的最有用的技能 免费 第一章:SQL语法基础篇 (19讲)  01丨了解SQL:一门半衰期很长的语言  02丨DBMS的前世今生  03丨学会用数据库的方式思考SQL是如何执行的  04丨使用DDL创建数据库&数据表时需要注意什么?  05丨检索数据:你还在SELECT * 么?  06丨数据过滤:SQL数据过滤都有哪些方法?  07丨什么是SQL函数?为什么使用SQL函数可能会带来问题?  08丨什么是SQL的聚集函数,如何利用它们汇总表的数据?  09丨子查询:子查询的种类都有哪些,如何提高子查询的性能?  10丨常用的SQL标准有哪些,在SQL92中是如何使用连接的?  11丨SQL99是如何使用连接的,与SQL92的区别是什么?  12丨视图在SQL中的作用是什么,它是怎样工作的?  13丨什么是存储过程,在实际项目中用得多么?  14丨什么是事务处理,如何使用COMMIT和ROLLBACK进行操作?  15丨初识事务隔离:隔离的级别有哪些

redis不小心清空了数据库(flushall),只能跑路吗?

耗尽温柔 提交于 2021-01-18 02:45:04
前言 前段时间这个新闻在行业内闹的沸沸扬扬 一名程序员因为对公司不满,删除了公司的数据库,后来被判7年,这也给咱们程序员敲响了一记警钟,无论发生什么,这种做法都是非常不妥当的,不光是职业道德的问题,而且还会收到法律的制裁。但是我们都知道redis中有一个叫flushall的命令,如果不小心在线上执行了会怎么办呢? 「 tips:本文仅仅作为理论讲解,如果要尝试请在本地环境尝试,若在线上执行之后导致数据无法恢复,后果自负!!! 」 恢复数据思路 大家都知道redis和memcache都作为缓存使用,redis有一点最大的不同在于数据可以持久化,redis的持久化是基于aof和rdb日志来进行持久化的,所以在恢复数据的时候我们可以考虑用 「 日志 」 来恢复 rdb日志都是二进制文件,也是不可读的,在这方面可能做不了太多事情,但是aof文件都是可读性很好的文件,而且里面记录了每一条命令(当然也记录了那一条flushall命令),所以我们可以用aof日志来恢复整个redis数据 但是大家注意 aof日志是有重写机制的,而且有一定的触发条件(如下),万一输入了flushall之后触发了重写机制,那么所有数据都会丢失,而正式环境redis数据是一直在写入的,数据量是一直在变大的,随时都有触发重写条件的可能,所以得立即关机,如果正好在你执行flushall的下一秒 触发了aof重写机制

厚着脸皮求领导写了一篇java小白进阶大牛之路!!!

做~自己de王妃 提交于 2021-01-17 18:42:32
缘起&应朋友之邀 2019年已经过去两个月了,应朋友之邀,写写自己的个人经历,与其说经历还不如是自我的总结与反思。2012年2月份只身一人拖着行李箱来到北京库巴科技有限公司实习,那时候库巴处在高速发展的阶段,我记得那一年库巴招了300多个应届毕业生,光技术就招了50多人,有运维、测试、开发、产品经理。那时候公司有宿舍,4个人一间,上下铺,条件虽然艰苦了一些,但认识了很多好朋友,至今还在保持着联系。下班之余大家经常一起吃饭喝酒,也就是那个时间胖了很多,回学校答辩的时候老师说:“你怎么胖成这样了,都有点快认不出来了”。 学校&java 在 学校 的时候对java很感兴趣,以至于上C语言课的时候,我在看java的学习视频,记得那时候看了很多牛人的视频,像魔乐科技的李兴华老师,尚学堂的马士兵老师,传智播客的张孝祥老师。 库巴&实习 在学校学的是struts、spring、Hibernate, 实习 的时候,公司用的是SSI,Ibatis没有用过,花了一周的时间学习框架,可能基础还算比较好,第二周领导就让我参与项目,这也是我人生中的第一个真实项目,虽然以前在学校也做过一些项目和参加过一些比赛,都是只限于单机版。公司的网站最早是用.net开发的,遇到高并发的时候经常宕机,我属于用户中心组,我们的任务是将注册登录部分用java进行重构,我负责登录功能的开发,在这个项目学到了很多东西

redis session共享

安稳与你 提交于 2021-01-17 17:07:48
session + redis 共享session的原因: 先进的企业级或者大型的网站平台,都是分布式结构,分布式的好处是通过nginx分发请求,让多个服务器各自处理请求,来减少单一服务器的压力,并且提高执行效率。 在这个分布式结构下,如果不用共享session的话,就会出现问题。当一个客户端发送一个请求(无session),通过nginx将第一次请求分发给服务器1,服务器判断无session,就让那个客户进行登录操作,并得到响应,此时客户端会存储一个来自服务器1响应的session,并存储在客户端。 当客户端发送第二次请求的时候,此时本次请求已经携带了session(跳过登录),nginx却将请求分发给服务器2,因为服务器2中没有session,所以无法与客户端session进行对应。所以程序会出现异常或是报错,无法正常响应。 解决方法 : session + redis 实现session 共享 session + redis 实现session 共享原理: 为了避免上面session 在服务器直接不共享的问题,就将 session 放入 redis 中。 当客户端第一次发送请求后,nginx将请求分发给服务器1 ,然后将服务器1 产生的session 放入redis中,这样的话 客户端、服务器1 和redis中都会有一个相同的session,当客户端发送第二次请求的时候

Widows和Linux下如何安装Redis

怎甘沉沦 提交于 2021-01-17 17:00:07
1. 一.Widows下如何安装Redis? *(1) .下载地址: 点击跳转 . 如下图: *(2) .下载成功后将其移动到我们想要安装的目录下并且解压: 如下图: *(3) .进入后有以下内容文件: *(4) .先点击redis-server.exe启动Redis服务,显示如下: *(5) .再点击redis-cli.exel连接Redis,如下图所示: *(6) .至此,在Windows下的安装就结束了。不过Redis官方文档不建议我们在Widows环境下搭建Redis服务。 最好是Linux环境下搭建并使用Redis服务! 2. 一.Linux下如何安装Redis? 前提条件 :我这边安装的Linux系统是CentOS7.7版本,并且是云服务器,使用的远程工具是Xshell 6。 *(1) .首先下载安装包,下载地址: 点击跳转 . 如下图: *(2) .一般我们都是将这些服务安装在指定文件夹下,在/opt目录下新建soft文件夹,再在/soft文件下建我们需要安装的服务名称文件夹,redis:如图: *(3) .将包通过rz命令上传到远程服务器上的redis文件夹下:如下图: *(4) .等待上传成功,速度一般根据你的服务器带宽而定:然后解压redis安装包: 命令: tar -zxvf 需要解压的包名 *(5) .解压后,进入文件夹,正常情况下解压后有19个文件

redis cluster 压力测试

筅森魡賤 提交于 2021-01-17 16:54:40
测试工具:redis-benchmark 测试版本:redis cluster 5.0.7 测试架构: 基中m1,m2,m3 为三个独立机房 测试结果: 测试脚本: #!/bin/bash #CLIENTS=50 #defaul clients HOST='192.168.1.1' PORT=4000 PWD='benchtest' # if have passwod end_clients=2000 CMDS="set" cmd_arry=(set get incr sadd mset mget hset) #ad hoc test redis command KEYSPACE=100000 TOTAL_REQUESTS=500000 #default 100000 data_size=100 #Data size of SET/GET value in bytes (default 3) CURRENT_DATE=`date +%Y%m%d` bench_file='redis-benchmark'-${CURRENT_DATE} benchmark='/redis/base/bin/redis-benchmark' benchmark(){ cmd=$1 for clients in `seq 50 50 $end_clients`;do if [ x"$pipeline"

wss nginx代理无法获取真实IP解决

夙愿已清 提交于 2021-01-17 03:35:22
最近在做一个小游戏项目,准备上线的时候,却发现移动网络居然连接不了mqtt ,后来客户端把ws 换成wss就解决连接的问题了,但是随之而来的还有另一个问题,服务器无法获取到真实IP了。大致数据是这样的 猜测方向,应该是由于使用了证书文件有关 Nginx简单配置如下 upstream mqttServer { server 127.0.0.1:3088 weight=1; } server { listen 80; listen 443 ssl; server_name www.*****.com; ssl_certificate cert/*****.pem; ssl_certificate_key cert/********.key; ssl_session_timeout 5m; ssl_ciphers ******************************; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { index index.htm index.html index.php; } location /mqtt { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded