redis进阶技术
文章平均质量分 88
redis进阶技术汇总
昔拉天使
I wanna the world know my existence.
展开
-
Redis实现原理简介
Redis 实现原理简介单机服务器的内部构造及原理介 绍对象系统Redis 数据的构建方法对象系统Redis 是一个键值对(key-value pair)数据库,数据库中的每个键都有与之对应的值,并且这些键和值都是对象(object),其中:键总是一个字符串对象(String Object)。而值则可以是字符串对象、列表对象(List Object)、散列对象(Hash Objec...原创 2020-02-13 04:18:14 · 1369 阅读 · 0 评论 -
redis集群(redis多机功能篇)
Redis 的集群在前面的课程中,我们陆续学习了 Redis 的复制特性,以及 Redis Sentinel 和 twemproxy 这两个程序,其中:复制特性可以创建指定服务器的复制品,这些复制品可以用于扩展系统处理读请求的能力。Redis Sentinel 可以在复制特性的基础上,通过监视主从服务器并在主服务器故障时执行自动故 障转移来保证系统的可用性。twemproxy 使用分片策...原创 2020-02-13 03:13:10 · 1052 阅读 · 0 评论 -
AOF持久化(redis服务器篇)
RDB 持久化的缺点RDB 持久化,这种持久化可以将数据库里面的数据以二进制文件的形式储存到硬盘里面。RDB 持久化有一个缺点,那就是,因 为创建 RDB 文件需要将服务器所有数据库的数据都保存起来,这是一个非常耗费资源和时间的操作,所以服务器需要隔一段时间才创建一个新的 RDB 文件,也即是说,创建 RDB 文件的操作不能执行得过于频繁,否则就会严重地影响服务器的性能。比如说,在 save...原创 2020-02-12 07:06:48 · 251 阅读 · 0 评论 -
RDB持久化(redis服务器篇)
RDB 持久化将数据以二进制文件的形式储存到硬盘里面持久化因为 Redis 服务器将数据储存在内存里面,而一旦服 务器被关闭、或者运行服务器的主机本身被关闭 的话,储存在内存里面的数据就会消失不 见。如果我们仅仅是将 Redis 用作缓存的话,那么这种数据丢失带来的问题并不是非常大,我们只需要重启机器,然后再次将数据放到 缓存里面就可以了;但如果我 们将 Redis 用作数据库的话,那么这...原创 2020-02-12 05:25:55 · 739 阅读 · 0 评论 -
RDB的COW(Copy On Write)
1、RDB的过程中是否会停止对外提供服务?2、RDB的过程中数据修改了,备份的是修改前的还是修改后的?3、RDB时是不是先把内容中的所有KV复制一份,保证数据不会被修改?问题解决:使用Copy On Write 写时复制。转载 2023-03-30 21:11:29 · 28 阅读 · 0 评论 -
redis ring
看代码后会发现,Hash那一章中讲的理论与go-redis中的实际实现也有些差别:理论中rendezvous hash只需在寻找节点时实时计算hash(key, node), 但代码里实际会存一份各个node的hash值以便省去重复计算;理论中rendezvous hash可以自由地扩展、删除节点,但代码里实际希望各节点字段是“read only”。节点挂掉后不会将其从管理的分片中删掉,只是在计算时忽略它的存在。同样地,等节点重启后又可以通过心跳检测将其重新加入计算范围内。原创 2024-01-16 15:29:06 · 998 阅读 · 0 评论 -
redis Twemproxy(redis多机功能篇)
扩展系统处理写请求的能力上一节课介绍了如何使用 Redis 提供的复制功能来扩展系统的读性能,但是在实际地使用 Redis 的 时候,用户除了可能遇上读性能问题之外,还可能会遇上写性能问题,有时候,用户甚至需要同时扩展 系统处理读请求和写请求的能力。举个例子,如果用户只有一台服务器,该服务器每秒钟能够处理 10 万次命令请求,其中每秒 3 万次写、 7 万次读,但是随着客户的数量增多,系统现在...原创 2020-02-12 21:32:46 · 1011 阅读 · 0 评论 -
redis Sentinel(redis多机功能篇)
Sentinel监视主从服务器,并在主服务器下线时自动进行故障转移启动 Redis Sentinel通过执行 Redis 安装文件夹中的 redis-sentinel 程序,可以启动一个 Sentinel 实例:$ redis-sentinel sentinel.conf因为 Redis 的 Sentinel 实际上就是一个运行在 Sentienl 模式下的 Redis 服务器,所以我们...原创 2020-02-12 18:53:00 · 563 阅读 · 0 评论 -
redis复制(redis多机功能篇)
复制扩展系统处理读请求的能力,并提高系统的可用性创建具有相同数据库的拷贝服务器Redis 的复制(replication)功能允许用户根据一个 Redis 服务器来创建任意多个该服务器的复制品,其中被复制的服务器为主服务器(master),而通过复制创建出来的服务器复制品则为从服务器(slave)。主从服务器两者拥有相同的数据库数据:只要主从服务器之间的网络连接正常,主服务器就会一直将发生...原创 2020-02-12 18:45:24 · 378 阅读 · 0 评论 -
redis多机功能导论(redis多机功能篇)
Redis 多机功能导论从单台 Redis 服务器过渡至多台 Redis 服务器问题到目前为止,本课程介绍的所有内容都是以单机 Redis 为背景的,也即是,我们考虑的事情只和一台Redis 服务器有关。但是在生产环境中实际地使用 Redis 的时候,只使用一台 Redis 服务器一般来说是没办法满足我们的需求的,限制主要来自于两个方面:内存容量不足:Redis 使用内存来储存数据库中的...原创 2020-02-12 17:40:39 · 253 阅读 · 0 评论 -
redis服务器管理(redis服务器篇)
服务器管理命令与工具检查连接是否正常PING使用客户端向 Redis 服务器发送一个 PING ,如果客户端与服务器之间的连接正常,并且服务器的运作也正常的话,那么命令将返回一个PONG 。通常用于测试网络连接和服务器状态,或者用于测量延迟值。 redis> PING PONG redis> PING Could not connect to Redis at 127...原创 2020-02-12 17:28:23 · 478 阅读 · 0 评论 -
redis服务器配置(redis服务器篇)
服务器配置通过调整服务器来适应你的需要配置选项Redis 服务器提供了一些配置选项(configuration option),通过修改这些选项的值,可以改变选项对应功能的行为。举个例子,前面介绍 SELECT 命令时曾经说过,Redis 服务器默认会创建 0 号至 15 号共十六个数据库以供用户使用。但 Redis 服务器的数据库数量并不是一成不变的,Redis 提供了 databas...原创 2020-02-12 03:48:30 · 4168 阅读 · 0 评论 -
redis构建博客(redis应用构建篇)
博客构建示例展示如何使用 Redis 去构建一个博客博客示例主要功能用户账号 发布文章在主页查看文章根据分类来查看文章评论文章用户账号用户账号注册一个博客账号需要:账号(account),可以包含英文或数字,不能有重复,会被博客用作唯一的 ID 。密码。昵称(nickname),发布文章或者评论时显示的名字。保证账号的唯一性可以使用之前介 绍过的 UniqueSe...原创 2020-02-12 02:56:05 · 327 阅读 · 0 评论 -
redis构建论坛(redis应用构建篇)
论坛构建介绍如何使用 Redis 去构建一个论坛V2EX主要功能用户账号 创建帖子、回复帖子、为帖子投票为帖子分类,查看属于特定分类的帖子将多个分类(category)归类至某个标签(tab),查看属于特定标签的帖子每日热议帖子排行榜基于算法的帖子推荐创建用户账号用户账号示例账号注册注册 V2EX 账号要求输入用户名、密码和电子邮件地址,并且用户名和电子邮件地址必须是未...原创 2020-02-12 01:17:05 · 1077 阅读 · 0 评论 -
redis构建微博(redis应用构建篇)
微博功能分析学习如何使用 Redis 来构建一个微博新浪微博的用户主页主要功能用户账号关注和被关注(用户关系)发微博查看微博时间线对微博进行点赞、评论和转发用户账号如何创建一个微博账号用户账号示例创建用户账号的方法注册一个新的微博账号,有三样信息是必须的:邮箱地址,不能和已有的 邮箱地址相同(实际上也可以使用手机来注册,但 这里只考虑邮箱)。密码名字,不能和已...原创 2020-02-11 21:56:34 · 845 阅读 · 0 评论 -
redis脚本(redis附加功能篇)
Lua 脚本在服务器端执行复杂的操作前面学习的附加功能流水线:打包发送多条命令,并在一个回复里面接收所有被 执行命令的结果。事务:一次执行多条命令,被执行的命令要么就全部都被 执行,要么就一个也不执行。并且事务执行过程中不会被其他工作打断。乐观锁:监视特定的键,防止事务出现竞争条件。虽然这些附加功能都非常有用,但它 们也有一些缺陷。...原创 2020-02-11 10:39:15 · 943 阅读 · 0 评论 -
redis事务(redis附加功能篇)
事务Redis 的事务功能允许用户将多个命令包裹起来,然后一次性地、按 顺序地执行被包裹的所有命令。在事务执行的过程中,服务器不会中断事务而改去执行其他命令请求,只有在事务包裹的所有命令都被执行完毕之后,服务器才会去处理其他命令请求。事务使用示例现在, 让我们假设 SETEX 命令并不存在于 Redis , 并且 SET 命令也不支持 EX seconds 参数, 如果我们要自己来实现一个...原创 2020-02-11 06:13:34 · 175 阅读 · 0 评论 -
redis流水线(redis附加功能篇)
流水线功能通过减少客户端与服务器之间的通信次数来提高程序的 执行效率通信在一般情况下, 用户每执行一个 Redis 命令,客户端与服务器都需要进行一次通信:客户端会将命令请求发送给服务器,而服务器则会将执行命令所得的结果返回给客户端。当程序执行一些复杂的操作时, 客户端可能需要执行多个命令, 并与服务器进行多次通信。多次通信示例(1/2)举个例子,假设我们正在构建一个为图书打标签(t...原创 2020-02-11 06:01:29 · 399 阅读 · 0 评论 -
redis发布与订阅(redis附加功能篇)
发布与订阅定义与模型发布与订阅功能Redis 的发布与订阅功能可以让用户将消息同时发送给多个客户端。这个功能由几个不同的角色 协作组成:• 发布者(publisher):发布消息的客户端。• 频道(channel):构建在服务器内部,负责接收发布者发送的消息,并将消息转发给频道的订阅者。• 模式(pattern):构建在服务器内部,负责对频道进行匹配,当被匹配的频道接到消息时,模式也...原创 2020-02-11 04:21:02 · 578 阅读 · 0 评论 -
redis键过期(redis附加功能篇)
Redis 的附加功能在前面的课程中,我们陆续介绍了 Redis 的六种数据结构,它们分别是字符串、列表、散列、集合、有序集合和 HyperLogLog。除此之外,我们还介绍了如何使用数据库命令来操作 Redis 的数据库本身:比如使用 DEL 命令删除数据库中的某个键,使用 SCAN 命令渐进地遍历整个数据库,使用 DBSIZE 返回数据库包含的键值对数量,等等。在这些数据库功能的基础上,...原创 2020-02-11 03:20:34 · 365 阅读 · 0 评论 -
redis数据库管理(redis数据库篇)
数据库:数据库命令:处理数据库中的单个键查看键的类型、删除键、检查键是否存在、修改键的名字。对键的值进行排序SORT命令以及它的各个参数和选项。获取数据库中的键随机获取数据库中的某个键、遍历数据库中的所有键。处理数据库本身查看数据库大小、清空数据库、切换数据库、在数据库之间移动键。...原创 2020-02-10 22:44:10 · 355 阅读 · 0 评论 -
redis HyperLogLog键(数据结构篇)
HyperLogLog使用常量空间估算大量元素的基数。问题记录网站每天获得的独立 IP 数量。集合实现使用集合来储存每个访客的 IP ,通过集合性质(集合中的每个元素都各不相同)来得到多个独立 IP ,然后通过调用 SCARD 命令来得出独立 IP 的数量。举个例子,程序可以使用以下代 码来记录 2014 年 8 月 15 日,每个网站访客的 IP :ip = get_vistor_...原创 2020-02-10 11:09:04 · 885 阅读 · 0 评论 -
redis有序集合键(数据结构篇)
有序集合(soted set / zset)按照元素的分值来有序地储存各不相同的元素。有序集合和集合一样,都可以包含任意数量的、各不相同的元素( element),不同于集合的是,有序集合的每个元素都关联着一个浮点数格式的分 值(score),并且有序集合会按照分 值,以从小到大的顺序来排列有序集合中的各个元素。虽然有序集合中的每个元素都必 须是各不相同的,但元素的分 值并没有这一限制,换句话...原创 2020-02-26 11:56:33 · 1655 阅读 · 0 评论 -
redis集合键(数据结构篇)
集合(set)储存多个各不相同的元素。Redis 的集合以无序的方式储存多个各不相同的元素。用户可以快㏿地向集合添加元素,或者从集合里面 删除元素,也可以对多个集合进行集合运算操作,比如计算并集、交集和差集。元素操作添加元素、删除元素、检查元素是否存在、返回集合的大小,等等。添加元素SADD key element [element …]将一个或多个元素添加到 给定的集合里面,已...原创 2020-02-10 05:27:21 · 1799 阅读 · 0 评论 -
redis列表键(数据结构篇)
列表(list)以有序的方式储存多个可重复的值。一个列表可以包含一个或以上数量的 项(item),每个项按照它们被推入到列表的位置来排列。每个列表项所处的位置决定了这个项的索引值(index),索引以 0 为开始,从列表的左端到右端依次 递增,位于列表最左端(表 头)的项的索引为 0 ,而位于列表最右端(表尾)的 项的索引为 N-1 ,其中 N 为列表的长度。列表包含的项可以出现重复,它们不...原创 2020-02-09 21:32:53 · 2437 阅读 · 1 评论 -
redis散列键(数据结构篇)
散列(hash)储存多个域值对。一个散列由多个域值对(field-value pair)组成,散列的域和值都可以是文字、整数、浮点数或者二 进制数据。同一个散列里面的每个域必 须是独一无二、各不相同的,而域的值则没有这一要求,换句话说,不同域的值可以是重复的。通过命令,用户可以对散列执行设置域值对、获取域的值、检查域是否存在等操作,也可以 让 Redis 返回散列包含的所有域、所有 值或者所有...原创 2020-02-09 18:44:59 · 965 阅读 · 0 评论 -
redis字符串键(数据结构篇)
字符串(string)储存文字、数字或者二进制数据。Redis 中最简单的数据结构,它既可以储存文字(比如 “hello world”),又可以储存数字(比如整数10086 和浮点数 3.14),还可以储存二进制数据(比如 10010100)。Redis 为这几种类型的值分别设置了相应的操作命令,让用户可以针对不同的值做不同的处理。基本操作为字符串键设置值、获取字符串键的值、获取字符串...原创 2020-02-09 07:27:25 · 1452 阅读 · 0 评论 -
redis简介
Redis 的诞生Redis 的创建者Salvatore Sanfilippo (antirez),男,意大利人,出生并居住在西西里 岛,个人网站 http://invece.org/ 。早年为系统管理员,关注计算机安全领域,于 1999 年发明了 idle scan 扫描技术,该技术现在在 nmap 扫描器上也有实现。2004 年~2006 年期间在做嵌入式方面的工作,并 为此写了名...原创 2020-02-09 02:45:34 · 2947 阅读 · 0 评论 -
windows下redis安装
1、要安装Redis,首先要获取安装包。Windows的Redis安装包需要到以下GitHub链接找到。链接:https://github.com/MSOpenTech/redis。打开网站后,找到Release,点击前往下载页面。2、在下载网页中,找到最后发行的版本(此处是3.2.100)。找到Redis-x64-3.2.100.msi和Redis-x64-3.2.100.zip,点击下载。...原创 2020-02-09 00:31:48 · 337 阅读 · 0 评论