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

    Redis 系列(4) —— 列表

    stop 获取列表指定索引下的元素的命令格式为 lindex key index 获取表长度的命令格式为 llen key 【示例】 127.0.0.1:6379> lrange ltest 2 4 1) "test" 2) "j" 3) "a" 127.0.0.1:6379> lindex ltest 4 "a" 127.0.0.1:6379> llen ltest (integer) 7 3. 按照索引范围修剪列表 ltrim key start stop 4. 修改列表中元素 修改指定索引下标元素的命令格式为 lset key index element 5. Redis 会使用 linkedlist 作为列表的内部实现。 列表的使用场景 消息队列 Redis 可以使用利用阻塞命令来实现一个简单的消息队列的功能 Redis 的 lpush + brpop 命令即可实现阻塞队列,生产者客户端使用 lpush 从列表左侧插入元素

    38420编辑于 2021-12-06
  • 来自专栏五分钟学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系列(4)——Redis的持久化

    作为快速入门Redis系列的第四篇博客,本篇为大家带来的是Redis的持久化。 码字不易,先赞后看! ? ---- Redis 的持久化 由于redis是一个内存数据库,所有的数据都是保存在内存当中的,内存当中的数据极易丢失,所以redis的数据持久化就显得尤为重要,在redis当中,提供了两种数据持久化的方式 可以配置多条save指令,让Redis执行多级的快照保存策略。Redis默认开启RDB快照。 redis.conf文件中默认设置 ? RDB方案配置 修改 redis 的配置文件 cd /export/servers/redis-3.2.8/ vim redis.conf ? 然后我们再任意添加一个redis的值后,把当前redis的服务进程关掉 ps -ef | grep redis ?

    87530发布于 2021-01-27
  • 来自专栏陈琛的Redis文章

    Redis系列——4.数据结构

    1.字符串(String) 3.集合(Set):交并补 前言 2.字符串列表(List) 5.哈希(hash):key-value 4.有序集合(ZSet) 前言 hello,小宝贝们,又见面啦, 常见的非关系型数据库Memcached只能支持简单的key-value结构的数据结构,但是redis支持五种数据结构,分别是字符串(String),字符串列表(List),集合(Set),有序集合(ZSet 先打开redis服务,如图。 ? 接着打开cmd,到当前目录底下,打开redis自带的客户端。如图。 ? 如果之前设置了密码,在我们选择一个db的时候,会报错,告诉我们还没有权限。 ok啦,已经连上了redis,开始玩耍起来啦。 ? 4.有序集合(ZSet) 操作命令 zadd zset score member 向zset中添加成员,score为排序权重,用于排序 zrange zset 0 -1 查看所有的成员 具体展示

    40630发布于 2020-06-12
  • 来自专栏快乐学AI系列

    快乐AI系列——计算机视觉(4)图像分割

    系列是由“MATRIX.矩阵之芯”精炼的AI快速入门系列,特色是内容简洁,学习快速。 相关要求:学员需要掌握Python编程基础,另外还需要有一定的线性代数、概率论基础。 # 对梯度图像进行二值化处理 _, thresh = cv2.threshold(grad, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU) # 使用形态操作进行前景背景分离 分水岭算法是一种基于图像形态的分割方法,常用于对数字图像进行分割,将图像分成不同的区域,以便进行进一步的分析和处理。 分水岭算法基于图像形态的基本概念,如腐蚀、膨胀、开运算和闭运算等。具体而言,分水岭算法将图像看作一个灰度图像,并在图像中提取梯度信息。 但是,分水岭算法对图像的预处理要求比较高,需要进行灰度化、二值化、边缘检测和形态处理等操作。此外,分水岭算法容易出现过分割或欠分割的情况,需要进一步的优化和改进。

    1.1K00编辑于 2023-04-03
  • Redis 系列Redis详解

    Redis使用单线程模型,不仅使Redis服务端处理模型变得简单,也使客户端开发变得简单。 Redis不需要依赖操作系统中的库,Redis自己实现了事件处理的相关功能。 主从复制 Redis 提供了复制功能,实现了多个相同数据的Redis副本(Replica)复制功能是分布式Redis的基础。 高可用和分布式   Redis 提供了⾼可⽤实现的Redis哨兵(Redis Sentinel),能够保证Redis结点的故障发现和故障⾃动转移。 键空间通知的增强 SCAN系列命令:提供了基于游标的迭代器,可以安全的遍历数据库中的键,替代了会阻塞服务的 KEYS 命令。 Redis 3.2(2016) 核心特性: GEO地理空间索引:新增一系列GEO命令,可以存储和查询地理位置信息,支持计算距离、范围内搜索。

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

    Redis系列

    一:Redis的常见数据类型有哪些 Redis 是典型的 “ 键值型 ” 数据库,不同数据类型其 key 结构一致, value 有所差异。 String 类型是 Redis 中最常见的数据类型, value 与 key 一样都是 Redis 自定义的 字符串结构,称为 SDS 。 八:Redis分布式锁如何实现 Redis 实现分布式锁主要利用 Redis 的 setnx 命令。 九:Redis的数据过期策略有哪些 数据删除策略: Redis 中可以对数据设置数据的有效时间,数据的有效时间到了以后,就需要将数据从内存中删除掉。 1 、完全基于内存的, C 语言编写 2 、采用单线程,避免不必要的上下文切换可竞争条件 3 、数据简单,数据操作也相对简单 4 、使用多路 I/O 复用模型,非阻塞 IO bgsave

    27510编辑于 2024-10-21
  • 来自专栏兜兜毛毛

    Redis Set (4)

    存储(实现)原理 Redis用intset或hashtable存储set。如果元素都是整数类型,就用inset存储。如果不是整数类型,就用hashtable(数组+链表的存来储结构)。 redis.conf set-max-intset-entries 512 127.0.0.1:6379> sadd lset 1 2 3 3 4 5 6 7 (integer) 7 127.0.0.1

    32220发布于 2020-03-19
  • 来自专栏技术杂记

    Redis 复制4

    命令master 上没有 rdb 文件[root@m1 ~]# lsanaconda-ks.cfg Downloads log Public redis.conf redis_slave_on_m1.conf VideosDesktop install.log Music redis-3.0.0 redis.log TemplatesDocuments install.log.syslog Pictures redis-3.0.0.tar.gz redis-new.conf tmp[root@m1 ~]# redis-cli 127.0.0.1:6379> keys * 1) "b"2) "a"3) "c"4) "8"5) "9"6) "d"127.0.0.1:6379

    27010编辑于 2022-07-09
  • 来自专栏Golang开发

    Redis(4)——list

    Redis中 可以对列表两端插入push 或者弹出pop,或者获取指定访问的元素列表,获取指定索引的下标的元素。 6379> linsert listkey after e n (integer) 8 127.0.0.1:6379> lrange listkey 0 -1 1) "e" 2) "n" 3) "d" 4) 会一直阻塞 127.0.0.1:6379> blpop emptylist 2 (nil) (2.08s) 127.0.0.1:6379> blpop emptylist 0 这个时候我们开启另外一个redis-cli ziplist 压缩列表:当列表类型元素个数小于list-max-ziplist-entries配置(默认512个),同时所有值都小于list-max-ziplist-value配置(默认64个字节)redis linkedlist链表当list类型无法满足ziplist的条件是,redis会使用linkedlist作为列表的内部实现。

    99950发布于 2019-05-29
  • 来自专栏闲余说

    redis系列之初识Redis

    Redis是内存数据库,因此它有足够好的读写性能; Redis支持持久化,redis支持AOF和RDB两种持久化方式,确保了内存中的数据不会“丢失”; Redis的sentinel和复制功能保证了Redis 使用场景 Redis 适合做什么 缓存,Redis本身是内存数据库,注定有极高的读写速度和吞吐,加上数据过期功能以及完善的数据淘汰策略使得Redis拥有与生俱来的缓存潜质。 Redis 不适合做什么 每种产品都有自己的特定的应用领域。Redis也不是万能的。 Redis是内存数据库,相比磁盘类型的数据库成本要高不少,注定了Redis不能用于存储大规模的数据(土豪忽略)。 深探入微 作为最佳实践本章将会把主要的关注点放和在Redis用户相关的一些Redis基本知识,这部分知识是Redis用户需要了解并在实际使用Redis过程中要考虑的。 使用新配置项:list-max-ziplist-size表示最大压缩空间或者ziplist长度,取值范围为[-5, -1]([64kb, 4kb])默认是-2(8kb);list-compress-depth

    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
  • 来自专栏ops技术分享

    redis原理(4

    十条数据,算出各自的哈希值,(这里就不变了,实际上要经过一系列计算) 0 : 0 1 : 1 2 : 2 3 : 3 4 : 4 5 : 5 6 : 6 7 : 7 8 : 8 9 : 9 有三个节点, 算出各自的哈希值 node a: 3 node b: 5 node c: 7 这个时候比较两者的哈希值,5等于b,则归属b,4小于b,归属b,3等于a,则归属a,最后所有大于c的,归属于c(这里只是模拟 ) 相当于整个哈希值就是一个环,对应的映射结果: node a: 0,1,2,3 node b: 4,5 node c: 6,7,8,9 这个时候加入node d, 就可以算出node d的哈希值: node d: 9 这个时候对应的数据就会做迁移: node a: 0,1,2,3 node b: 4,5 node c: 6,7 node d: 8,9 只有最后8,9这2条数据被存储到新的节点,其他不变

    35400发布于 2021-05-18
  • 来自专栏大大刺猬

    redis(4) -- 集群

    /src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-server} /usr/local 0 1608532872000 4 connected 60bee426b74f78863ebde556ccdf3be318076e2a 192.168.1.31:6380@16380 slave 61a3730c0bc4f8dd0adc6cb8361468b111ae107f 0 1608532290000 4 connected 61a3730c0bc4f8dd0adc6cb8361468b111ae107f 192.168.1.33:6379@16379 master 0 1608533632330 4 connected 61a3730c0bc4f8dd0adc6cb8361468b111ae107f 192.168.1.33:6379@16379 master failove 1887:M 21 Dec 2020 16:57:07.822 # Setting secondary replication ID to fb19496140888dd50683a812b6f4dc4c6475a003

    60210发布于 2020-12-21
  • 来自专栏嘎嘎软件测试

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

    3、打开 redis-server 进入服务端,可以看到如下界面 4、打开客户端 redis-cli ,可以尝试输入 ping命令,得到结果为 PONG 说明连接成功 尝试 set key 和get 执行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 hmset config name xiaomotong age 18 127.0.0.1:6379> hgetall config 1) "name" 2) "xiaomotong" 3) "age" 4) 127.0.0.1:6379> shutdown not connected> not connected> root@iZuf66y3tuzn4wp3h02t7pZ:/# ps aux |grep

    51230编辑于 2023-02-16
  • 来自专栏架构师成长之路

    redis cluster(4)- redis集群原理

    https://www.jianshu.com/p/0232236688c1 1、集群架构 Redis集群设计 总体架构 在这个图中,每一个蓝色的圈都代表着一个redis的服务器节点。 2、集群通信---- 2.1 集群发现:MEET 最开始时,每个Redis实例自己是一个集群,我们通过cluster meet让各个结点互相“握手”。 3、数据分布及槽信息 3.1槽(slot)概念 Redis Cluster中有一个16384长度的槽的概念,他们的编号为0、1、2、3……16382、16383。 ,这是可以由用户指定的,也可以在初始化的时候自动生成(redis-trib.rb脚本)。 3.2数据分片 在Redis Cluster中,拥有16384个slot,这个数是固定的,存储在Redis Cluster中的所有的键都会被映射到这些slot中。

    77120编辑于 2022-04-14
  • 来自专栏超前沿网络空间安全全栈学习宝典

    2024Mysql And Redis基础与进阶操作系列4)作者——LJS

    //emp表的deptid和和dept表的did的数据类型一致,意义都是表示部门的编号 //是否重名没问题,因为两个did在不同的表中 ); (4) sec) age tinyint check(age >20) 或 sex char(2) check(sex in(‘男’,’女’)) CHECK(height>=0 AND height<3) 4 char(11) | NO | | | | +--------+-------------+------+-----+---------+-------+ 4 char(11) | NO | | NULL | | +--------+-------------+------+-----+---------+-------+ 4 char(11) | YES | | | | +--------+-------------+------+-----+---------+-------+ 4

    67410编辑于 2024-10-22
  • 来自专栏逸鹏说道

    小解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环境在功能上有没有什么不同的呢? Redis中提供集群命令行工具 redis-trib 来简化集群操作 在执行redis-trib.rb文件之前需要安装ruby环境,嫌麻烦可以直接运行下面命令 yum install centos-release-scl-rh 4 故障检测和转移 这里将模拟一个主节点故障,通过向主节点发送DEBUG SEGFAULT 命令来实现主节点故障效果。 Redis官网:https://redis.io Redis中文网:http://www.redis.cn 本篇的集群配置文件:https://github.com/rainbowda/learnWay

    82130发布于 2018-08-28
领券