首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏五分钟学SRE

    五分钟Redis系列-Redis入门指南

    然而,Redis的持久化、异步删除和集群同步等功能实际上是由其他线程完成的。因此,将Redis称为单线程,更多是一种简化的说法,它实际上是一种高效的多线程设计。 Redis为何选择单线程?      深入探索多路复用     多路复用技术是Redis的另一个超能力。它允许Redis在单线程中同时监听多个套接字,当数据到达时,内核会触发事件并将其放入队列,Redis线程随后处理这些事件。 Redis 6.0 多线程模型的改进     Redis 6.0引入了多线程模型,这是相对于之前版本的一个重要改进。 快照生成的命令与策略 Redis提供了两种生成RDB文件的命令: SAVE:在主线程中执行,会阻塞Redis服务,等待快照完成。这种命令在生产环境中很少使用,因为它会显著影响Redis的性能。 Redis的扩展性保证 Redis的扩展性主要体现在以下几个方面:     集群模式:Redis集群通过数据分片,将数据分散存储在多个节点上,每个节点负责处理一部分数据。

    44030编辑于 2024-08-12
  • 来自专栏∑小熊猫的博客

    Redis 系列(2) —— Redis 的字符串

    Redis 字符串相关命令 1. 【示例】 # 获取多个值 127.0.0.1:6379> mget hello test1 test2 test3 1) "world" 2) "demo1" 3) "demo2" 4) "demo3" ) 8 127.0.0.1:6379> get test2 "demo2asr" 12. 缓存 缓存是 Redis 的典型使用场景,其中 Redis 作为缓存层,mysql 作为存储层,绝大部分请求数据都是从 Redis 中获取。 由于 Redis 具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。 2.

    52830发布于 2021-09-10
  • 来自专栏架构之美

    2天,我把 Redis 废了!

    下面这门课程,结合了诸多后端岗位面试痛点,带大家全方位深入Redis的底层结构与应用,22次课程,彻底掌握Redis这一面试高频考点!粉丝价仅需1分钱,强烈建议报名学习! 2月28日 - 3月1日开课实战Redis面试重难点,原价499前50位报名仅需 ¥0.01 长按扫码报名免费领取16本电子书 + 2大VIP专栏限时恢复原价 1我为什么推荐你报名? 奈和猎聘已达成深度合作 3完你将收获? 来自架构一线的名师为你带来Redis底层结构、高级应用以及缓存调优的全解读,在这2天课程中,你将亲身实践:  Redis 底层数据结构与内部编码 使用 RedisJSON 操作Redis,亲身体验 Redis 5金牌教研团打造一站式学习服务 课程期间,奈的教研团队还提供全程答疑服务。

    70510编辑于 2022-03-03
  • 来自专栏golang云原生new

    Redis 系列redis 学习 18,redis 存储结构原理 2

    redis 存储结构原理 2 咱们接着上一部分来进行分享,我们可以在如下地址下载 redis 的源码: https://redis.io/download 此处我下载的是 redis-6.2.5 版本的 dictType *type; void *privdata; dictht ht[2]; long rehashidx; /* rehashing not in progress 具体的操作等等 ht[2] hash 表的键值对,放在此处,一个旧的,一个新的 ht[0] :是扩容前的数组 ht[1]:是扩容后的数组 这个是当数据量大的时候,用于渐进式 rehash 的 rehashidx 我们在 redis 源码中 src\server.h 也能够看到 redisdb 的数据结构 我们可以看到 dict 这个字典,是 redis 中使用是相当频繁和关键的 上面有说到 ht[2] 会用在渐进式 ht[0] 数据拷贝到 ht[1] 的方式一 是这样进行 rehash 的 : 扩容的时候,rehash 是这样做的: 先会对上述说到的 ht[1] 开辟内存空间,会将 ht[0].size * 2

    58630编辑于 2023-02-16
  • 来自专栏陈琛的Redis文章

    Redis系列——2.在Linux上下载和安装Redis

    目录 1.安装gcc环境 2.到官网下载压缩包并上传到Linux上 3.对其进行解压 4.到该文件夹下执行make命令(编译) 5.开始安装,标红的为安装目录 6.判断是否安装成功 7.最后一步 8. 启动Redis(前端启动) 9.启动Redis(后端启动) 1.安装gcc环境 redis是C语言开发的,安装redis需要将官网下载的源码进行编译,编译依赖gcc环境。 2.到官网下载压缩包并上传到Linux上 将从官网下载的压缩包由windows上传到Linux上,如下图。 ? redis-server:redis启动的命令。 7.最后一步 把redis.conf 复制过来 ? 8.启动Redis(前端启动) ? 注意: 1.Windows使用redis其实就是在Linux中编译出来的可执行文件,具体如下图。 ? 2.在Windows里面不支持后端启动,配置文件里面没有属性,但是也不是没办法,只是没那么简单。

    1.3K20发布于 2020-06-12
  • 来自专栏大数据成长之路

    快速入门Redis系列(2)——Redis的数据类型详解

    作为快速入门Redis系列的第二篇博客,本篇为大家介绍的是Redis的数据类型。 码字不易,先赞后看! ? redis当中各种数据类型结构如上图: 关于Redis更多的用法也可以去看【菜鸟教程】 1.1 redis 当中对字符串string的操作 下表列出了常用的 redis 常用的字符串命令 ? Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 下表列出了 redis hash 基本的相关命令: ? 下表列出了 Redis 集合基本命令: ? 1.5 redis中对key的操作 下表给出了与 Redis 键相关的基本命令: ? Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。

    54450发布于 2021-01-27
  • 来自专栏阿沐教你学知识

    面试系列-2 redis列表场景分析实践

    2 数据结构list的理解 面试官:心里暗暗说道,小伙子,不要以为string的数据结构说的很好,就暗暗窃喜,你以为我们只是问这么简单的基础知识;你以为让你进来拧螺丝就可以放松技术含量,不可能滴! 索引定位时间复杂度O(n),插入和删除时间复杂度O(1),内存利用率高(可使用内存中不连续空间且需要空间时才创建);不能随机查找,必须从第一个数据开始遍历(这就知道为啥索引定位复杂度是O(n)了吧) 2、 我看你简历上你使用redis做了一系列的功能实现,那我们开始聊一聊你在实际项目中是怎样运用列表命令的吧! 2.查找select指令操作: lrange指令:lrange key start end 获取列表中指定范围内的元素列表;若start值大于列表end值则返回空列表;时间复杂度O(s+n) s为偏移量 总结:我们通过一系列的一问一答的形式,来展示redis的列表使用以及场景,是为了更好地带领大家进入探讨、思考、理解。

    64000发布于 2021-05-27
  • 来自专栏Java系列学习与数据结构算法

    Java Redis系列2redis的安装与使用+redis持久化的实现))

    Java Redis系列2redis的安装与使用+redis持久化的实现) 什么是Redis? ? Redis的应用场景 1.缓存(数据查询,短链接,新闻内容,商品内容) 2.聊天室的在线好友 3.任务队列(秒杀,抢购) 4.应用排行榜 5.网站访问统计 6.数据过期处理 7.分布式集群架构中的 2.哈希类型 1.存储 :hset key field value 2.获取 :hget key field 3.获取全部的key和valu :hgetall myhash 4.删除:hdel :6379> smembers set 1) "1" 2) "2" //删除指定元素 127.0.0.1:6379> srem set 1 (integer) 1 127.0.0.1:6379> smembers 的一些基础操作及怎么进行持久化,这也是我JAVA redis系列的第二篇,后面我会继续更新,写作不易,请各位老铁点个赞支持一下,觉得有帮助的也可以收藏呀,我会经常更新文章,也可以关注我呀

    47220发布于 2020-09-27
  • 来自专栏NetCore 从壹开始

    系列2、在Centos中,搭建Redis集群

    /rc.d/init.d新建redisc脚本,写入以下内容,以下为启动两个节点 IP=192.168.0.3 PWD=ansonredis REDISPORT1=5804 REDISPORT2=5805 /redis-cli PIDFILE1=/var/run/redis_${REDISPORT1}.pid PIDFILE2=/var/run/redis_${REDISPORT2}.pid CONF1 ="/etc/redis/${REDISPORT1}.conf" CONF2="/etc/redis/${REDISPORT2}.conf" case "$1" in start) $EXEC $CONF1 $EXEC $CONF2 echo "Redis Cluster started" fi $CLIEXEC -h $IP -p $REDISPORT1 -a $PWD shutdown $CLIEXEC -h $IP -p $REDISPORT2 -a $PWD

    60610编辑于 2023-01-09
  • Redis 系列Redis详解

    Redis巨大优势 简单稳定 Redis简单体现在三个方面: Redis源码很少,只有2w行左右,3.0版本后由于增加了集群功能,代码增至5w行左右,虽然看起来数字很大,但是程序员完全可以吃透。 高可用和分布式   Redis 提供了⾼可⽤实现的Redis哨兵(Redis Sentinel),能够保证Redis结点的故障发现和故障⾃动转移。 键空间通知的增强 SCAN系列命令:提供了基于游标的迭代器,可以安全的遍历数据库中的键,替代了会阻塞服务的 KEYS 命令。 Redis 3.2(2016) 核心特性: GEO地理空间索引:新增一系列GEO命令,可以存储和查询地理位置信息,支持计算距离、范围内搜索。 PSYNC2:优化了故障转移后的部分重同步机制 LFU缓存淘汰策略:新增了基于访问频率的淘汰算法,更加智能 异步删除:UNLINK、FLUSHALL ASYNC 等命令可以非阻塞地删除大量键,避免服务停顿

    14810编辑于 2026-01-15
  • 来自专栏Java开发

    Redis系列

    的持久化策略有哪些 在 Redis 中提供了两种数据持久化的方式: 1 、 RDB 2 、 AOF RDB : 定期更新,定期将 Redis 中的数据生成的快照同步到磁盘等介质上,磁盘上保存的就是 的集群方案有哪些 在 Redis 中提供的集群方案总共有三种: 1.主从复制 1.保证高可用性 2.实现故障转移需要手动实现 3.无法实现海量数据存储 2、哨兵模式 1.保证高可用性 2.可以实现自动化的故障转移 3.无法实现海量数据存储 3.分片集群 1.保证高可用性 2.可以实现自动化的故障转移 3.可以实现海量数据存储 八:Redis分布式锁如何实现 Redis 实现分布式锁主要利用 Redis 的 setnx 命令。 FAST 模式执行频率不固定,每次事件循环会尝试执行,但两次间隔不低于 2ms ,每次耗时不超过 1ms 十:Redis是单线程的,为什么还是那么快 Redis 总体快的原因:

    27510编辑于 2024-10-21
  • 来自专栏arebirth重生者的IT之路

    Redis系列---redis简介01

    一、 本章我们将用简短的几句话来帮助你快速的了解什么是redis,初学者不必深究 1 Redis简介 Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写、 基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API 它通常被称为数据结构服务器,因为值value可以是字符串String,哈希Map,列表list,集合set和有序集合sorted set等类型 2 Redis特点 2.1优点: 1.支持多种数据结构,如 String 字符串、list双向链表、dict hash表、set 集合,zset 排序 set等等 2.支持持久化操作,可以进行aof以及rdb 3.支持通过Replication 进行数据复制,通过master-slave 机制,可以实时进行数据同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA(Hight Availability 4.单进程请求,所有命令串行执行,并下发情况下不需要考虑数据一致性问题 5 Redis读写的速度非常的快

    37910发布于 2020-06-19
  • 来自专栏闲余说

    redis系列之初识Redis

    Redis是内存数据库,因此它有足够好的读写性能; Redis支持持久化,redis支持AOF和RDB两种持久化方式,确保了内存中的数据不会“丢失”; Redis的sentinel和复制功能保证了Redis 深探入微 作为最佳实践本章将会把主要的关注点放和在Redis用户相关的一些Redis基本知识,这部分知识是Redis用户需要了解并在实际使用Redis过程中要考虑的。 为了最大可能的节约内存,Redis的每一种数据结构都拥有2~3种(截止Redis6.0,后续可能会更多)的底层实现。 表-1 Redis数据结构与编码 类型 编码 决定条件 说明 string int 8 个字节的带符号长整型(2^63-1) 整数编码 string embstr 小于等于 44 个字节的字符串,3.0.0 使用新配置项:list-max-ziplist-size表示最大压缩空间或者ziplist长度,取值范围为[-5, -1]([64kb, 4kb])默认是-2(8kb);list-compress-depth

    45610编辑于 2022-12-18
  • 来自专栏嘎嘎软件测试

    Redis系列】Java使用Redis

    ‍目录 一、前言 二、Java使用Redis 三、总结 四、历史文章指路 一、前言 上文【Redis系列】一文带你入门Redis 介绍如何搭建Redis环境,并对Redis做了基本介绍,这篇则介绍通过Java 使用Redis,首先引入Redis依赖,主要方法有:连接Redis,插入Redis,查询Redis,删除Redis,批量查询Redis。 二、Java使用Redis <! -- Redis依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> = null) { jedis.auth("root"); //如redis没有设置密码, 则无需添加此行 System.out.println("连接Redis成功"

    55510编辑于 2022-08-13
  • 来自专栏golang云原生new

    Redis 系列redis 学习二

    releases Redis-x64-5.0.10.zip 2、解压安装包 解压 zip 安装包 Redis-x64-5.0.10.zip,这个压缩包现在有 14 M了 redis-server redis linux 下安装 Redis 1、官网下载安装包:https://redis.io/ redis-6.2.5.tar.gz , 并放到自己的 linux 环境下 2、解压,tar xvf redis OK 127.0.0.1:6379[2]> dbsize (integer) 0 127.0.0.1:6379[2]> set name xiaomotong OK 127.0.0.1:6379[2]> select 0 OK 127.0.0.1:6379> flushall OK 127.0.0.1:6379> select 2 OK 127.0.0.1:6379[2]> dbsize (integer 这是一个误区,单线程一样可以非常快 2、多线程的效率一定比单线程的效率高吗?

    51230编辑于 2023-02-16
  • 来自专栏帆说区块链

    【密码(3)】-国密系列1-SM2

    题外话:不知道鸽了多久了,这次补更一下,出的密码加密算法还挺少的,打算先搞4期密码算法,国密SM系列。 SM2算法概念 SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。 SM2为非对称加密,基于ECC。该算法已公开。 ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。 SM2原理 (1)曲线参数 SM2标准推荐使用256位素域Fp上的椭圆曲线y2=x3 + ax + b,其中: (2)密钥生成算法 Alice选择随机数dA做为私钥,其中0 Alice计算公钥PA=dA 此外,若要不断提高安全强度,则必须增加密钥长度,SM2算法密钥长度增长速度较慢(例如:224-256-384),而RSA算法密钥长度则需呈倍数增长(例如:1024-2048-4096),这使得SM2算法的安全性能表现更佳

    1.9K40编辑于 2022-12-01
  • 来自专栏逸鹏说道

    小解Redis 系列

    官网:http://redis.io/ 推荐一个开源组件:StackExchange.Redis https://github.com/StackExchange/StackExchange.Redis 主要类是 StackExchange.Redis.ConnectionMultiplexer,它隐藏了多个Redis服务器的细节,它设计用于在多个调用方共享和复用,也就是说不要在每个调用都创建新的。 Using Redis Pub/Sub ISubscriber sub = redis.GetSubscriber(); 同样这个对象is a cheap object,不用保存。 默认端口,SSL默认端口6380,以$开始的标识用来表示命令映射 例:localhost 使用本地,默认端口 localhost:6380,otherhost:6380,allowAdmin=true 2, ", "PING", "ECHO", "CLIENT" }, available: false), KeepAlive = 180, DefaultVersion = new Version(2,

    1.1K90发布于 2018-04-09
  • 来自专栏fixzd

    redis系列:集群

    1 简介 Redis 集群是Redis 的一个分布式实现,它是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接。现在来看看Redis集群实现了哪些目标? 那么Redis集群环境与非分布式Redis环境在功能上有没有什么不同的呢? 集群的数据库只有0,且不支持SELECT 由于集群将键分布在不同的槽(slot)中,所以涉及到多键值的复制操作也是不支持的,像set里的并集(unions)和交集(intersections)操作 2 可以通过以下命令将槽分片 CLUSTER ADDSLOTS slot1 [slot2] … [slotN] 3 搭建Redis集群 3.1 集群环境介绍 本文搭建的集群环境有3个主节点,每个主节点都有两个从节点 /redis-trib.rb create --replicas 2 192.168.17.101:6379 192.168.17.102:6379 192.168.17.103:6379 192.168.17.101

    82130发布于 2018-08-28
  • 来自专栏fixzd

    redis系列:哨兵

    2 准备工作 在原先主从的基础上,每台机器启动一个哨兵。架构图如下 ? /usr/soft/redis/sentinel.log" # 修改改成5秒 sentinel monitor learnSentinelMaster 192.168.17.101 6379 2 sentinel Redis服务器初始化没什么较大的区别。 192.168.17.101 6379 #quorum 2/2 当前纪元被更新 ,试图故障恢复 # +new-epoch 2 # +try-failover master learnSentinelMaster (与主服务器客观下线时间进行比较) 新的主服务器只选择通过上面的测试,并在上面的标准基础上排序: Slave通过Redis实例的redis.conf文件配置的slave-priority排序。

    2K40发布于 2018-08-28
  • 来自专栏学习之路

    Redis#2】初识 Redis

    Redis 最显著的特点是: 高性能 支持多种数据结构 持久化能力 分布式特性(主从复制、哨兵模式、集群) 丰富的客户端支持(几乎支持所有主流编程语言) 2. 示例:SET name "Tom"、GET name 2)Hash(哈希):存储对象,类似 Map。 9)Streams(流):Redis 5.0 引入的消息队列结构,支持消息持久化和消费者组。 2. Redis 能够存储的数据是有限的(内存空间有限),这就意味着如果有太多的数据是不能放在一个 Redis 当中的,因此就有了集群的概念,操作方式:可以引入多个主机,部署多个 Redis 节点,每个 Redis 这样的内存级别的数据库来帮助完成 当然,使用这样的内存数据库,存储大量的数据,需要不少的 硬件资源 的 注意:Redis 当中存储的是全量数据,这里的数据是不可以进丢弃的 2.

    30000编辑于 2025-06-10
领券