缓存 接口redis core
Redis 在排行榜中的应用
1.Redis 的 Sorted Set 数据类型 1.1 Sorted Set 数据类型的特点 Sorted Set 有序集合是 Redis 提供的一种重要的数据类型。它是由不重复且有序的字符串元素组成的,而且每个元素都会关联一个 double 类型的分数,通过该分数来为集合中的成员进行从小到大的 ......
Redis持久化RDB和AOF原理解析、使用和优缺点对比
前言 本文讲述 Redis 两种持久化方式 RDB 和 AOF 优缺点以及原理。 为何需要持久化? Redis 是基于内存操作的,进程终止、服务器宕机后内存数据会丢失,但是在很多使用场景中我们希望数据不丢失,服务重启之后数据还能恢复到停机前的状态,特别是使用 Redis 做数据库的情况。 Redis ......
Redis布隆过滤器的原理和安装使用
前言 本文讲述布隆过滤器 (RedisBloom) 的基本原理和安装使用。 RedisBloom是什么? RedisBloom 是 Redis 中过滤器模块,可以用来判断值是否存在,常用来解决缓存穿透问题。 查询数据时,先用 RedisBloom 判断数据是否存在,不存在则直接返回,存在则从缓存 / ......
Redis 在身份认证中的应用
1.Redis 在 Session 共享问题中的应用 传统 Session-Cookeis 身份认证方法中,一个 Session 只保存在一台服务器上,适合域单体应用。随着项目规模的增加,项目的架构也不断向微服务分布式集群演进,传统的 Session-Cookie 方式在集群环境下就不能很好的工作了 ......
2021-12-30-Docker启动MySQL、MongoDB、Redis、Elasticsearch、Grafana,数据库
layout: post cid: 5 title: Docker启动MySQL、MongoDB、Redis、Elasticsearch、Grafana,数据库 slug: 5 date: 2021/12/30 16:57:00 updated: 2022/03/25 15:53:08 status ......
LRU缓存替换策略及C#实现
LRU缓存替换策略 缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。 但与缓存的高速相对的是,缓存的成本较高,因此容量往往是有限的,当缓存满了之后,就需要一种策略来决定将哪些数据移除出缓存,以腾出空间来存储新的数据。 这样的策 ......
接口安全处理
一、为什么要保证接口安全 在我们日常开发中,存在一些接口是敏感且重要的,比如充值接口,如果在你调用充值接口的时候被别人抓包了,然后就可以修改充值的金额,本来充值10元可以改成充值10w,产生重大生产问题,再或者说被被人抓包了,别人可以不限制的调用该充值10元的接口,调用几万次,也是会导致重大问题,那 ......
Redis 缓存机制
1.Redis 缓存 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。 Redis 因读写性能较高,它非常适合作为存贮数 ......
在Linux部署Redis主从和哨兵集群实现高可用
前言 本文主要讲述在 Linux 系统中配置和部署 Redis 主从集群和哨兵,实现高可用和自动故障迁移。 准备工作 参考 Redis 单机部署 安装 3 个 Redis 服务作一主二从,本文准备了 6380(主)、6381(从) 和 6382(从)。 参考 Redis 单机部署 安装 3 个 Re ......
在Linux部署Redis代理Twemproxy实现数据分片
前言 本文主要讲述 Redis 代理 Twemproxy 安装过程。 Twemproxy 是推特开源用于 Memcached 和 Redis 的轻量级代理。这里以0.5.0版本为例。 我们可以通过取模、随机、一致性哈希等算法将数据分散在多个 Redis 服务来实现水平扩展。但是客户端直连就需要跟每个 ......
在Linux部署Redis Cluster集群
前言 本文讲述在 Linux 系统部署 Redis Cluster 实现数据分片的具体步骤。 请参考 Redis 单机部署 下载编译。 Redis Cluster是什么? Redis Cluster 是官方提供的一种用数据分片来实现横向扩容的解决方案,由一个或多个 Redis 服务组成一个无主集群。 ......
在Linux部署Redis代理Predixy实现数据分片
前言 本文以predixy-1.0.5为例,讲述 Redis 代理 Predixy 安装过程。 Predixy 是一款高性能全特征 Redis 代理,支持 Redis-sentinel 和 Redis-cluster。作者拿其它常用代理做了 性能测评,Predixy 在各个维度性能都是最优的,与其他 ......
Redis——(主从复制、哨兵模式、集群)的部署及搭建
重点: 主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。 哨兵和集群都是在主从复制基础上实现高可用的。 缺点:故障恢复无法自动化,写操作无法负载均衡,存储能力受到单机的限制。 哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复 ......
在Linux部署单机Redis完整过程
前言 本文以redis-6.2.5为例,讲述在 Linux 系统下单机 Redis 下载、编译、打包、安装为服务、启动和访问的整个过程。 安装环境为 Linux CentOS 64,本文用的 7.5 版本. 下载编译目录在当前目录soft/redis下,最终服务可执行程序在/opt/soft/red ......
C++库封装JNI接口——实现java调用c++
1. JNI原理概述 通常为了更加灵活高效地实现计算逻辑,我们一般使用C/C++实现,编译为动态库,并为其设置C接口和C++接口。用C++实现的一个库其实是一个或多个类的简单编译链接产物。然后暴露其实现类构造方法和纯虚接口类。这样就可以通过多态调用到库内部的实现类及其成员方法。进一步地,为了让不同库 ......
Redis系列12:Redis 的事务机制
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓 ......
Redis 的 Java 客户端
实际项目中,需要通过编程语言去访问并操作 Redis。Redis 官方提供了多种语言的客户端,具体可访问以下地址:https://redis.io/clients Java 语言访问 Redis,常用的 API 包括: (1)Jedis:一个很小但很健全的 redis 的 java 客户端,通过 J ......
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/ConditionalTagSupport 解决办法
1.报错截图 2.问题原因 缺少对应的类 3.问题解决 <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependen ......
Redis 数据库的哨兵模式
1. 哨兵模式 1.1 哨兵模式的结构和作用 哨兵(Sentinel)是 Redis 官方提供的一种高可用方案,它可以监控多个 Redis 服务实例的运行情况。本质上,Sentinel 也是一个运行在特殊模式下的 Redis 服务器。主从复制模式下,一般会配置多个 Sentinel 节点,通过互相协 ......
Redis 数据库的主从复制
1. 主从复制 1.1 什么是主从复制 主从复制,是将多台数据库服务器分为主节点(master)和从节点(slaver),主节点数据更新后会根据配置和策略,自动同步到从节点上,从而保证主从节点中存有相同的数据。 1.2 主从复制的作用 有了主从复制,数据可以有多份副本,这就带来了很多好处: (1)提 ......
Docker 下 Redis 数据库的持久化
1、Docker 容器的数据卷 Docker 是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望 Docker 容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker 提供了数据卷技术来实现这些需求。 数据卷就是目录或文件,存在于一 ......
Redis 数据库的持久化
1、Redis 持久化 1.1 什么是持久化 持久化可以理解为数据的永久存储,就是将数据存储到一个不会丢失的地方。如果把数据放在内存中,电脑关闭或重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘就是一种持久化。 1.2 Redis 的持久化 Redis 的数据存储在内存中,内存是瞬时的 ......
Redis 数据库的事务机制
1、Redis 事务机制 1.1 事务的定义 事务是指一系列操作数据库的步骤,这一系列的操作步骤,要么完全地执行,要么完全地不执行。 1.2 Redis 的事务 同样,Redis 中的事务也是一组命令的集合,至少是两个或两个以上的命令。Redis事务是一个单独的隔离操作,事务中的所有命令都会序列化、 ......
Redis的发布与订阅
1、发布与订阅 1.1 什么是发布和订阅 发布订阅模式是一种应用程序(系统)之间通讯、传递数据的技术手段,特别是在异构(不同语言)系统之间作用非常明显,可以实现应用(系统)之间的解耦合。 发布订阅是一对多的关系,需要有信息的发布者和消息的收听者。订阅者:对某个内容感兴趣,需要实时获取新的内容,只要关 ......
asp.net core 生成文件下载
1 public IActionResult down(int id, string filename) 2 { 3 string path = hostingEnvironment.WebRootPath + "/ContractFiles/" + id + "/" + filename; 4 5 ......
Jenkins持续集成,接口测试报告发送企业微信
一、前置条件 已经安装Jenkins (361.1) 已经安装jdk (jdk17) Jdk和Jenkins版本相互兼容 二、启动Jenkins(注意不要关闭dos窗口) 切换到Jenkins目录,输入命令:java -jar jenkins.war 2. dos窗口出现“Jenkins is fu ......
Redis事务与Lua脚本
Redis的事务没办法保证一致性,使用Lua脚本也不能保证。Lua脚本能保证一致性,而且比redis的事务实习要简洁健壮。 转载:https://maimai.cn/article/detail?fid=1538576512&efid=SQ3XsywteU9lIxil766Lxw ......
在EF Core中为数据表按列加密存储
假设有User表 public class User : Entity<int> { public int Id { get; set; } public string UserName { get; set; } public string Name { get; set; } public st ......
优雅的API接口
优雅的API接口 瞧瞧别人家的API接口,那叫一个优雅 前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用。 那么问题来了,如果设计一个优雅的API接口,能够满足:安全性、可重复调用、稳定性、好定位问题等多方面需求? 今天跟大家一起 ......
Redis未授权访问Getshell
漏洞成因 有些redis绑在0.0.0.0:6379,没有开启验证或者没有设置对未知ip来源进行限制以及默认的空密码就导致了redis默认访问 但是这个普遍的漏洞极可能造成后门植入getshell,也可能造成反弹shell权限维持,甚至会造成ssh直接免密连接服务器 开始复现 搭建环境 服务器操作系 ......