redis
spark man
crazy for coding
展开
-
redis分布式锁的层层推导
redisson项目依赖和配置场景与问题使用setnx做锁业务出现异常宕机抽取方法可重入锁自旋续命项目依赖和配置pom.xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.0.RELEASE</version>原创 2020-07-09 16:14:39 · 152 阅读 · 0 评论 -
redis作为注册中心
redis registry center下载dubbo源码修改demo运行原理下载dubbo源码dubbo可以让redis作为注册中。从github上下载dubbo源码。找到dubbo-registry模块下的dubbo-registry-redis。里面的RedisRegistry类是redis作为注册中心的核心逻辑: //获得Redis主节点名称 String masterName = url.getParameter(REDIS_MASTER_NAME_KEY);原创 2020-06-21 10:48:38 · 4059 阅读 · 0 评论 -
redis stream的应用
stream 应用介绍环境和准备准备好consumer group生产数据消费数据启动consumer介绍我们来介绍一个使用redis stream的实战项目。我们要从twitter里拿到名人的数据,然后将其分类存储。所以项目包含两个端点:Twitter ingest stream和Twitter influencer classifier。这两端分别是数据的读取和数据的消化。这两端使用的都是stream的数据类型。使用stream的好处:数据的生产和消费是异步的;消费端在生产者产生数据之原创 2020-06-12 16:40:21 · 1068 阅读 · 0 评论 -
Redis的Stream
redis streamintroconsumer group是如何工作的?introstream是5.0之后引进的新的数据类型,被称为kafka killer。stream是一种类似于日志的数据结构,而且是尾部追加的。(一个生产者和一个消费者的情况,由stream连接)(一个生产者和多个消费者的情况)我们通过xadd向mystream这个key加入两条数据。*代表id的生成规则,那就是,由redis自动生成。返回的数据就是id,它的结构为:<millisecondsTime>原创 2020-06-12 11:03:46 · 1236 阅读 · 0 评论 -
redis的sentinel mode
上篇文章我们说了replication的一主二从复制和链式复制。但这都是不可行的,因为它要你去手动设置老大(当主机挂掉之后),这会带来业务的停止。所以,我们引入了哨兵模式。哨兵就是一个进程,它会站岗,然后监视着master的活动。如果哨兵觉得master已经死了,那他就会根据算法自动选一个老大。这是哨兵智能的地方。如果要布置哨兵集群的话,哨兵们会进行投票来选老大。既然哨兵是一个进程,所以我们肯定要启动它:在redis的目录下,还有sentinel的配置文件:这里面的内容非常多。我们这次原创 2020-06-11 17:16:46 · 522 阅读 · 0 评论 -
redis的主从复制的两种模式——主从与链路
replication简介生成实例操作特点简介主从复制就是replication。一个主机,复制一份从机。这样就有数据备份了,当然也可以实现主机主写、从机主读的读写分离。生成实例我们要在一台机子上整三个redis实例(最少就是要三个,而且要奇数)。进入utils,执行install_server.sh。这样会生成一个实例。做三次,生成三个实例(端口号分别为6379、6380、6381),模拟多个机子的主从复制。操作用三个redis-cli去分别连接三个redis server。看一下r原创 2020-06-11 13:53:22 · 435 阅读 · 0 评论 -
redis的索引模式
redis的索引模式都是基于sorted set的,因sorted set有数值,数值就是索引,你可以根据它找到其他值。索引模式sorted set字典排序地理信息sorted setsorted set是set和hash的混合结构。它不能重复,这点像set。它里面的每个元素都和一个浮点数映射(对应),这点像hash。举例:按照生年排序(全部)。找到1950年前生的黑客。删除1940年到1960年出生的黑客。更多操作可以查询help @sorted_set。sorted set原创 2020-06-01 19:22:06 · 6023 阅读 · 0 评论 -
redis的单线程
redis的worker是单线程的,所以redis是一把天然的锁。但是,怎么才能知道worker是单线程的呢?我们用这个命令来启动一个前台的redis: strace -ff -o ../../test_redis_process/out ./redis-server 我们将追踪所有fork系指令,并且把结果放在../../test_redis_process这个文件夹里,以out作为后缀。...原创 2020-05-22 19:25:20 · 584 阅读 · 0 评论