首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏∑小熊猫的博客

    Redis 系列(3) —— Hash

    Hash 散列 Redis 的散列会将一个键和一个散列在数据库里关联起来,用户可以在散列中为任意多个字段设置值。与字符串键一样,散列的字段和值既可以是文本数据,也可以是二进制数据。 获取某个hash 字段值 获取散列值的相关命令格式为 hget key field 【示例】 127.0.0.1:6379> hget hashtest f1 "v1" 3. 获取所有的 field-value 获取所有格的hash 的字段与值的命令格式为 hgetall key 【示例】 127.0.0.1:6379> hgetall hash 1) "k1" 2) "v1" 3) Redis 会使用 ziplist 作为 hash 的内部实现,ziplist 使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比 hashtable 更加优秀 hashtable (哈希表 ): 当哈希类型无法满足 ziplist 的条件时,Redis 就会使用 hashtable 作为哈希的内部实现,因为此时 ziplist 的读写效率会下降。

    62730发布于 2021-09-10
  • 来自专栏python3

    Redis系列--3Redis数据类型

    yiibai points 200 OK redis 127.0.0.1:6379> HGETALL user:11) "username" 2) "yiibai" 3) "password" 4) "  mongodb (integer) 2 redis 127.0.0.1:6379> lpush tutoriallist rabitmq (integer) 3 redis 127.0.0.1:6379 > lrange tutoriallist 0 101) "rabitmq" 2) "mongodb" 3) "redis" 列表的最大长度为232- 1元素(4294967295,每个列表中的元素超过 " 3) "redis" 注意:在上面的例子中rabitmq设置属性加两次,但由于唯一性只加一次。 ) "redis" 2) "mongodb" 3) "rabitmq"

    48220发布于 2020-01-15
  • 来自专栏五分钟学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文章

    Redis系列——3.使用Jedis连接Redis

    上一篇说了在Linux中如何下载和安装redis,一脸懵逼者请移步,在Linux上下载和安装Redis,但是我们通常用编程语言Java来连接他的,那今天我们来学习一下如何用Java来连接他。 那我们现在在本地用Jedis连接一下redis3.先用jedis测试一下 我们用jedis连接上远端的redis,可是发现根据连不上,具体报错如下图。 ? 这不尴尬了吗,这不是,我们来看一下这是为啥。 我们可以在redis的config文件中看见,里面有这么一行代码bind 127.0.0.1,这其实是redis的安全措施,比如我远端开了redis,任何人只要知道我的IP,都可以连上,并且进行数据操作 所以redis提供了固定的IP或固定的IP段连接,比如这边默认的就是只能127的IP段才能连接,其他网段都不可以。 ?

    1.1K10发布于 2020-06-12
  • 来自专栏Java3y

    3y】从零单排Redis【青铜】

    3)将新元素添加到底层数组。 另外一提:只支持升级操作,并不支持降级操作。 2.6压缩列表(ziplist) 压缩列表(ziplist)是list和hash的底层实现之一。 压缩列表(ziplist)是Redis为了节约内存而开发的,是由一系列的特殊编码的连续内存块组成的顺序性数据结构。 压缩列表结构图例如下: ? 压缩列表的组成部分 下面我们看看节点的结构图: ? > RPUSH numbers 1 "three" 5 (integer) 3 ? 对象不再被使用的时候,对象所占用的内存会释放掉 (3Redis会共享值为0到9999的字符串对象 (4:对象会记录自己的最后一次被访问时间,这个时间可以用于计算对象的空转时间。 至于我们在使用的时候挑选哪些数据结构作为存储,可以简单看看: string-->简单的key-value list-->有序列表(底层是双向链表)-->可做简单队列 set-->无序列表(去重)-->提供一系列的交集

    69140发布于 2018-12-05
  • 来自专栏大数据成长之路

    快速入门Redis系列(3)——Redis的JavaAPI操作(附带练习)

    作为快速入门Redis系列的第三篇博客,本篇为大家带来的是Redis的JavaAPI操作。 码字不易,先赞后看! ? ---- Redis的JavaAPI操作 看完了上一篇博客,相信大家对于Redis的数据类型有了初步的了解。 事实上,Redis不仅可以通过命令行进行操作,同时Redis也可以通过JavaAPI进行操作。我们可以通过使用javaAPI来对Redis数据库当中的各种数据类型进行操作。 4 5 6 7 8 9,ltest2 从左到右为 f e d c b a 3、在Ltest1的3 左边插入3333 4、在6右边插入6666 5、通过索引查询Ltest2 索引为3的数据 6、将 将两个集合的交集写入到setdemo3 resource.sinter("setdemo3","setdemo1","setdemo2"); // 3.

    81140发布于 2021-01-27
  • 来自专栏人人都是架构师

    Go单测系列3—MySQL和Redis测试

    这是Go语言单元测试从零到溜系列教程的第2篇,介绍了如何使用go-sqlmock和miniredis工具进行MySQL和Redis的mock测试。 在上一篇《Go单测系列2—网络测试》中,我们介绍了如何使用httptest和gock工具进行网络测试。 除了网络依赖之外,我们在开发中也会经常用到各种数据库,比如常见的MySQL和Redis等。 《Go单测从零到溜系列》的示例代码已上传至Github,点击https://github.com/go-quiz/golang-unit-test-demo 查看完整源代码。 (sqlmock.NewResult(1, 1)) mock.ExpectCommit() // 将mock的DB对象传入我们的函数中 if err = recordStats(db, 2, 3) WithArgs(2, 3).

    99620编辑于 2023-09-10
  • Redis 系列Redis详解

    Redis使用单线程模型,不仅使Redis服务端处理模型变得简单,也使客户端开发变得简单。 Redis不需要依赖操作系统中的库,Redis自己实现了事件处理的相关功能。 高可用和分布式   Redis 提供了⾼可⽤实现的Redis哨兵(Redis Sentinel),能够保证Redis结点的故障发现和故障⾃动转移。 键空间通知的增强 SCAN系列命令:提供了基于游标的迭代器,可以安全的遍历数据库中的键,替代了会阻塞服务的 KEYS 命令。 Redis 3.2(2016) 核心特性: GEO地理空间索引:新增一系列GEO命令,可以存储和查询地理位置信息,支持计算距离、范围内搜索。 可以为不同客户端设置不同的用户名、密码、命令权限 SSL/TLS加密支持:增强了客户端和服务端通信安全性 客户端缓存:支持了服务器辅助的客户端缓存功能(Client-side Caching),进一步降低延迟 RESP3协议

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

    Redis系列

    二:跳表是什么 跳表 (SkipList) 首先是链表,但与传统的链表相比有几点差异: 1.跳表结合了链表和二分查找的思想 2.元素按照升序排列存储 3.节点可能包含多个指针 的集群方案有哪些 在 Redis 中提供的集群方案总共有三种: 1.主从复制 1.保证高可用性 2.实现故障转移需要手动实现 3.无法实现海量数据存储 2、哨兵模式 1.保证高可用性 2.可以实现自动化的故障转移 3.无法实现海量数据存储 3.分片集群 1.保证高可用性 2.可以实现自动化的故障转移 3.可以实现海量数据存储 八:Redis分布式锁如何实现 Redis 实现分布式锁主要利用 Redis 的 setnx 命令。 1 、完全基于内存的, C 语言编写 2 、采用单线程,避免不必要的上下文切换可竞争条件 3 、数据简单,数据操作也相对简单 4 、使用多路 I/O 复用模型,非阻塞 IO bgsave

    27510编辑于 2024-10-21
  • 来自专栏闲余说

    redis系列之初识Redis

    Redis是内存数据库,因此它有足够好的读写性能; Redis支持持久化,redis支持AOF和RDB两种持久化方式,确保了内存中的数据不会“丢失”; Redis的sentinel和复制功能保证了Redis 使用场景 Redis 适合做什么 缓存,Redis本身是内存数据库,注定有极高的读写速度和吞吐,加上数据过期功能以及完善的数据淘汰策略使得Redis拥有与生俱来的缓存潜质。 Redis 不适合做什么 每种产品都有自己的特定的应用领域。Redis也不是万能的。 Redis是内存数据库,相比磁盘类型的数据库成本要高不少,注定了Redis不能用于存储大规模的数据(土豪忽略)。 深探入微 作为最佳实践本章将会把主要的关注点放和在Redis用户相关的一些Redis基本知识,这部分知识是Redis用户需要了解并在实际使用Redis过程中要考虑的。 为了最大可能的节约内存,Redis的每一种数据结构都拥有2~3种(截止Redis6.0,后续可能会更多)的底层实现。

    45610编辑于 2022-12-18
  • 来自专栏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 3.支持通过Replication 进行数据复制,通过master-slave 机制,可以实时进行数据同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA(Hight Availability 4.单进程请求,所有命令串行执行,并下发情况下不需要考虑数据一致性问题 5 Redis读写的速度非常的快

    37910发布于 2020-06-19
  • 来自专栏嘎嘎软件测试

    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 学习二

    -6.2.5.tar.gz 也可以解压到指定的目录下,例如 tar xvf redis-6.2.5.tar.gz -C /usr/local/redis 3、进入 redis-6.2.5 ,进行源码编译 执行make && make install 4、设置后台启动 修改目录下的 redis.conf 5、启动 redis-server,并启动 redis-cli 连接服务端 root@iZuf66y3tuzn4wp3h02t7pZ :/# redis-server /usr/local/redis/redis-6.2.5/redis.conf root@iZuf66y3tuzn4wp3h02t7pZ:/# redis-cli -p redis 服务 127.0.0.1:6379> shutdown not connected> not connected> root@iZuf66y3tuzn4wp3h02t7pZ:/# ps aux 以字节的形式指定设置 3 个字节的数据大小 通过上图我们可以看出,本次 redis 测试的性能,每秒能够处理 38066.23 个请求,对于单机的 redis 已经是相当厉害了 redis 基础知识

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

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

    题外话:不知道鸽了多久了,这次补更一下,出的密码加密算法还挺少的,打算先搞4期密码算法,国密SM系列。 SM2原理 (1)曲线参数 SM2标准推荐使用256位素域Fp上的椭圆曲线y2=x3 + ax + b,其中: (2)密钥生成算法 Alice选择随机数dA做为私钥,其中0 Alice计算公钥PA=dA ⋅G 输出密钥对(sk=dA, pk=PA) (3)签名算法 设Alice发签名消息M给Bob,IDA是Alice的标识符,ENTLA是IDA的长度,dA是A的私钥,基点G= (xG,yG),A的公钥PA ZA=H(ENTLA ‖IDA ‖a‖b‖ xG ‖ yG ‖ xA ‖ yA), H是SM3算法 ①设置M*=ZA ‖M并计算 e = H(M*) ②产生随机数k∈[1, n-1] ③计算椭圆曲线点 (3)传输速度更快 在通讯过程中,更长的密钥意味着必须来回发送更多的数据以验证连接。256位的 SM2 算法相对于2048位的RSA 算法可以传输更少的数据,也就意味着更少的传输时间。

    1.9K40编辑于 2022-12-01
  • 来自专栏快乐学AI系列

    快乐AI系列——计算机视觉(3)目标检测

    图片本系列是由“MATRIX.矩阵之芯”精炼的AI快速入门系列,特色是内容简洁,学习快速。相关要求:学员需要掌握Python编程基础,另外还需要有一定的线性代数、概率论基础。 官方GitHub仓库中获取:具体操作步骤如下:1、访问OpenCV官方GitHub仓库 https://github.com/opencv/opencv2、进入/data/haarcascades目录3、 常见的两阶段目标检测算法包括R-CNN系列、Fast R-CNN、Faster R-CNN等。单阶段目标检测则是直接对图像进行分类和回归,不需要生成候选框。 常见的单阶段目标检测算法包括YOLO系列、SSD、RetinaNet等。目标检测算法的评价指标通常包括精度和速度两个方面。 cat_cascade.detectMultiScale(img[y:y+win_size[1], x:x+win_size[0]], scaleFactor=1.05, minNeighbors=3)

    1.1K00编辑于 2023-03-30
  • 来自专栏逸鹏说道

    小解Redis 系列

    官网:http://redis.io/ 推荐一个开源组件:StackExchange.Redis https://github.com/StackExchange/StackExchange.Redis 主要类是 StackExchange.Redis.ConnectionMultiplexer,它隐藏了多个Redis服务器的细节,它设计用于在多个调用方共享和复用,也就是说不要在每个调用都创建新的。 三种典型使用场景 访问 Redis Database IDatabase db = redis.GetDatabase(); 这个对象is a cheap object,不要保存,每次使用直接创建即可。 获取了Database对象之后,就可以使用Redis API. Using Redis Pub/Sub ISubscriber sub = redis.GetSubscriber(); 同样这个对象is a cheap object,不用保存。

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

    redis系列:集群

    1 简介 Redis 集群是Redis 的一个分布式实现,它是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接。现在来看看Redis集群实现了哪些目标? 那么Redis集群环境与非分布式Redis环境在功能上有没有什么不同的呢? 可以通过以下命令将槽分片 CLUSTER ADDSLOTS slot1 [slot2] … [slotN] 3 搭建Redis集群 3.1 集群环境介绍 本文搭建的集群环境有3个主节点,每个主节点都有两个从节点 接收到redis-trib创建集群命令后,检查传入的master节点数量是否大于等于3个。只有大于3个节点才能组成集群 。 计算每个主节点需要分配的槽数量,以及给主节点分配从节点。 以下就是发生故障出现日志内容 2169:M 31 Jul 21:06:20.873 * Marking node 3c29beb7984b40a8c19b580362a0daf29dc349fb as

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

    redis系列:哨兵

    sentinel.conf src/redis-server sentinel.conf --sentinel 3 开始搭建 哨兵搭建的过程如下 ? Redis服务器初始化没什么较大的区别。 {"punsubscribe",punsubscribeCommand,-1,"",0,NULL,0,0,0,0,0}, {"publish",sentinelPublishCommand,3, */ } sentinel; 启动哨兵出现的日志如下 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo # Redis version=4.9.103, bits (与主服务器客观下线时间进行比较) 新的主服务器只选择通过上面的测试,并在上面的标准基础上排序: Slave通过Redis实例的redis.conf文件配置的slave-priority排序。

    2K40发布于 2018-08-28
  • 来自专栏呼延

    Redis系列(十)redis对象系统

    Redis 系列(九)底层数据结构之五种基础数据类型的实现中其实就提到了,那么应该在此之前先介绍它吗? 结论:想那么多屁事,写就完事了。 它可以是以下任意一种: REDIS_ENCODING_INT long 类型的整数 REDIS_ENCODING_ENBSTR embstr 编码的简单动态字符串(不知道的可以去看上一篇文章) REDIS_ENCODING_RAW 简单动态字符串 REDIS_ENCODING_HT 字典 REDIS_ENCODING_LINKEDLIST 双端链表 REDIS_ENCODING_ZIPLIST 压缩列表 REDIS_ENCODING_INTSET 敬请查看 Redis 系列(九)底层数据结构之五种基础数据类型的实现 类型检查与命令多态 如果读者熟悉 Redis 的命令的话(不熟没关系,看下一篇文章), 就会发现,Redis 的命令设计维度不是单一的 Redis 不是最缺内存了吗? 是的,这样子当然是省内存,但是** Redis 是一个高性能的内存数据库**. 性能这一块,Redis 卡的死死的。

    54310发布于 2020-02-17
  • 来自专栏呼延

    Redis系列(十一)redis命令全集

    背景介绍 以下摘自:Redis 官网。 各种语言都提供了 Redis 的客户端,比如 Java 的Jedis和 python 的redis-py. 同时 Redis 也提供交互式的客户端,在 mac 上执行: brew install redis进行安装,安装完成后执行: redis-cli 进入交互式的客户端,即可开始使用。 MONITOR: 可以监控 redis 服务器,看他处理的每个请求。可以在 redis 客户端中执行monitor, 也可以直接在 shell 种执行:redis-cli monitor. SDIFF key1 key2 key3.

    98650发布于 2020-09-21
领券