04-Redis 单线程 or 多线程 Redis 单线程Redis 单线程指的是 接收客户端请求->解析请求 ->进行数据读写等操作->发送数据给客户端 这个过程是由一个线程(主线程)来完成的。简单来说,Redis 中只有网络请求模块和数据操作模块是单线程的,而其他的如持久化存储模块、集群支撑模块等是多线程的。这也是我们说 Redis 是单线程的原因。 Redis 在启动的时候,是会启动一些后台线程(BIO)的: 2021-01-01 Redis #Redis
05-Redis 多机之1 - 主从复制 1 主从复制 主从复制 是指将一台 Redis 服务器的数据,复制到其他的 Redis 服务器。前者称为 **主节点(master)**,后者称为 **从节点(slave)**。 数据的复制是 单向 的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。 Redis 主从复制支持 主从同步 和 从从同步 2021-01-01 Redis #Redis
05-Redis 多机之2 - 哨兵 Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。 1 Redis Sentinel 哨兵在介绍哨兵之前,首先从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵和集群,其主要作用和解决的问题是: 持久 2021-01-01 Redis #Redis
05-Redis 多机之2 - 哨兵 脑裂 1、原理1.1、概述哨兵模式的 redis 集群有三种角色:sentinel/master/slave,它们通过 tcp 链接,相互建立联系。 sentinel 作为高可用集群管理者,它的功能主要是:检查故障,发现故障,故障转移。 1.2、故障转移流程 在 redis 集群中,当 sentinel 检测到 master 出现故障,那么 sentinel 需要对集群进行故障转移。 2021-01-01 Redis #Redis
05-Redis 多机之3 - 集群 1 Redis 集群Redis的高可用技术有:持久化、主从复制和哨兵,但这些方案仍有不足,其中最主要的问题是存储能力受单机限制,以及无法实现写操作的负载均衡。 Redis集群解决了上述问题,实现了较为完善的高可用方案。集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。 上图展示了 Redis Cluster 典型的架构图,集群中的每一个 Redis 节点都 互相两 2021-01-01 Redis #Redis
Redis - Java 编码调用 JedisJedis 是 Redis 官方推荐的Java连接开发工具。 手动编程redis 依赖12345678910111213<dependencies> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId& 2021-01-01 Redis #Redis
Redis SET、SETNX、SETEX、SETGET SET 官网:https://redis.io/docs/latest/commands/set/ 语法 1SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL] 可用版本:>= 1 2021-01-01 Redis #Redis
Redis 使用启动脚本设置开机启动 启动脚本推荐在生产环境中使用启动脚本方式启动redis服务。启动脚本redis_init_script位于位于Redis的/utils/目录下。 123456789101112131415# 大致浏览下该启动脚本,发现redis习惯性用监听的端口名作为配置文件等命名,我们后面也遵循这个约定。 # redis服务器监听的端口 REDISPORT=6379 # 服务端所处位置,在make instal 2021-01-01 Redis #Redis
Redis 安装(Centos 伪分布式) 测试环境 redis 需要安装在 linux 服务器上运行测试,本项目使用 linux 虚拟机及 ssh 客户端进行功能测试。 集群中应该至少有三个节点,每个节点有一备份节点。需要 6 台服务器。 搭建伪分布式,需要 6 个 redis 实例(生产环境搭建只需改下 IP 地址即可,步骤相似)。 redis 安装环境redis 是 C 语言开发,建议在 linux上 运行,本项目使用 Cento 2021-01-01 Redis #Redis
Redis 安装(Centos 源码 7.0.12) Redis 官网下载地址:https://redis.io/download/ Redis 版本第二位数字如果是偶数,就是稳定版,如果是奇数,就是激进版 1、检测 Linux 安装环境Linux 环境安装 Redis 必须先具备 gcc 编译环境,gcc 是 linux 下的一个编译程序,是 C 程序的编译工具。 12gcc -v # 查看是否安装了gccyum -y install g 2021-01-01 Redis #Redis
Redis 安装(Windows) 1、下载 RedisRedis 官网是不提供 Windows 版本的 Redis 的,一开始是由微软的一个团队负责维护其 Windows 版本,github 地址;但是,目前该团队也停止了对这一Windows版本Redis的维护工作,其更新停留在了 2016 年。现在,则是另一个志愿者团队在维护 Windows 版本的 Redis,github 地址。我们在他这下载 Redis 即可。 下载地址: 2021-01-01 Redis #Redis
Redis 安装(管理工具) Redis Desktop Manage 管理工具 官网地址:https://redisdesktop.com/download Github 地址:https://github.com/RedisInsight/RedisInsight Github 地址:https://github.com/uglide/RedisDesktopManager/ https://github.com/ugl 2021-01-01 Redis #Redis
Redis 简介 Redis 相关地址 Github 源码:https://github.com/antirez/redis Redis 官网:https://redis.io Redis 命令使用手册:https://redis.io/commands/ Redis 中文网:http://www.redis.net.cn/ Redis 官方中文文档:https://www.redis.com.cn/docum 2021-01-01 Redis #Redis
Redis 设置和使用密码 设置密码1、通过配置文件redis.conf设置密码找到requirepass关键字,后面就是跟的密码,默认情况下是注释掉的,即默认不需要密码,打开注释,设置为自己的密码,重启即可 12345# Warning: since Redis is pretty fast an outside user can try up to# 150k passwords per second against a 2021-01-01 Redis #Redis
Redis 部分命令 1234567891011121314151617# 查看服务端版本redis-server -v redis-server --version# 查看客户端版本redis-cli -v redis-cli --version# 启动客户端src/redis-server & src/redis-server ./redis.conf & # 指定配置文件 # 停止客户端redi 2021-01-01 Redis #Redis
Redis 配置文件详解 windows 下配置文件名称为 redis.windows.conf Linux 下配置文件名称为 redis.conf 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707 2021-01-01 Redis #Redis
Redis-benchmark 压力测试 Redis 压力测试Redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。 Redis 性能测试工具可选参数如下所示: 序号 选项 描述 默认值 1 -h 指定服务器主机名 127.0.0.1 2 -p 指定服务器端口 6379 3 -s 指定服务器 socket 4 -c 指定并发连接数 50 5 -n 指定 2021-01-01 Redis #Redis
00-MySQL 基础 MySQL 运行逻辑和其他数据库相比,MySQL 在存储引擎上采用 插件式的存储引擎架构 将查询处理和修改更新的系统任务以及数据的存储提取相互分离。 MySQL 启动以后,初始化模块就从系统配置文件中读取系统参数和命令参数,初始化整个系统,同时存储引擎也会启动; 初始化结束后,连接管理模块会监听客户端的连接请求,并将连接请求转发给线程管理模块去请求一个连接线程; 线程模块接到请求后会调用用户 2020-08-08 MySQL #MySQL
01-数据结构基础-数组、链表、栈、队列 1、数组数组(Array) 是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的内存来存储。 我们直接可以利用元素的索引(index)可以计算出该元素对应的存储地址。 数组的特点是:提供随机访问 并且容量有限。 1234假如数组的长度为 n。访问:O(1) // 访问特定位置的元素插入:O(n )// 最坏的情况发生在插入发生在数组的首部并需要移动所有元素时删除: 2020-08-08 数据结构 #数据结构
01-算法基础 算法定义和特征定义:算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。 不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。 一个 2020-08-08 算法 #算法