redis
文章平均质量分 62
小高求学之路
22届毕业生,2021年荣获第十二届蓝桥杯陕西赛区二等奖
展开
-
Redis 三种模式(Single 、Cluster、Sentinel)的连接方式
/** * 判断 redis 是否可以连接成功 * * @param * @return */ public Map<String, Object> urlLink(T_redis record) { String redisType = record.getRedis_type(); String url = record.getUrl(); List<Map<St...原创 2022-04-09 15:28:49 · 2595 阅读 · 2 评论 -
redis集群和哨兵的区别
监控主数据库和从数据库是否正常运行。主数据库出现故障时自动将从数据库转换为主数据库。sentinel发现master挂了后,就会从slave中重新选举一个master。哨兵模式强调高可用Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 A原创 2022-04-08 14:35:57 · 3988 阅读 · 0 评论 -
Redis 数据操作命令简介
StringsAPPEND:给字符串类型的value后边添加新的字符串。DECR:整数类型的value减一。DECRBY:整数类型的value减去指定值。GET:获取value。GETDEL:查询并删除key。GETEX:查询并设置过期时间。GETRANGE:返回value的子串。GETSET:获取老值,并设置新值。INCR:整数类型的value加一。INCRBY:整数类型的value加一个整数。INCRBYFLOAT:浮点型value加一个数字。MGET:一次获取多个值。MSET原创 2021-12-07 13:39:51 · 687 阅读 · 0 评论 -
深入了解Redis(底层实现)源码 (第四篇)
有序集合为何能同时支持点查询和范围查询?有序集合(Sorted Set)是 Redis 中一种重要的数据类型,它本身是集合类型,同时也可以支持集合中的元素带有权重,并按权重排序。ZRANGEBYSCORE:按照元素权重返回一个范围内的元素。ZSCORE:返回某个元素的权重值这其实就和 Sorted Set 底层的设计实现有关了。Sorted Set 能支持范围查询,这是因为它的核心数据结构设计采用了跳表,而它又能以常数复杂度获取元素权重,这是因为它同时采用了哈希表进行索引。Sorted Set原创 2021-12-04 17:21:23 · 659 阅读 · 1 评论 -
深入了解Redis(底层实现)源码 (第三篇)
如何实现一个性能优异的Hash表?Hash 表是一种非常关键的数据结构,在计算机系统中发挥着重要作用。比如在 Memcached 中,Hash 表被用来索引数据;在数据库系统中,Hash 表被用来辅助 SQL 查询。而对于 Redis 键值数据库来说,Hash 表既是键值对中的一种值类型,同时,Redis 也使用一个全局 Hash 表来保存所有的键值对,从而既满足应用存取 Hash 结构数据需求,又能提供快速查询功能。那么,Hash 表应用如此广泛的一个重要原因,就是从理论上来说,它能以 O(1) 的复原创 2021-12-04 16:12:18 · 863 阅读 · 2 评论 -
深入了解Redis(底层实现)源码 (第二篇)
为什么 Redis 不用 char*?char字符数组的结构很简单,就是一块连续的内存空间,依次存放了字符串中的每一个字符。比如,下图显示的就是字符串“redis”的char数组结构。从图中可以看到,字符数组的最后一个字符是“\0”,这个字符的作用是什么呢?其实,C 语言在对字符串进行操作时,char* 指针只是指向字符数组的起始位置,而字符数组的结尾位置就用“\0”表示,意思是指字符串的结束。这样一来,C 语言标准库中字符串的操作函数,就会通过检查字符数组中是否有“\0”,来判断字符串是否结束。比原创 2021-12-04 15:29:51 · 799 阅读 · 1 评论 -
深入了解Redis(底层实现)源码 (第一篇)
Redis源码全景图Deps目录:第三方依赖库,那么为啥要引进第三方呢?因为Redis作为一个用C语言写的用户态程序,它的不少功能是依赖标准的glibc库提供的,比如内存分配、行读写、文件读写、子进程/线程创建等。但是,glibc库提供的某些功能实现,效率并不高。我举个简单的例子,glibc 库中实现的内存分配器的性能就不是很高,它的内存碎片化情况也比较严重。因此为了避免对系统性能产生影响,Redis 使用了 jemalloc 库替换了 glibc 库的内存分配器。可是,jemalloc 库本身又原创 2021-12-04 15:09:45 · 5483 阅读 · 2 评论 -
Redis 客户端三种不同的实现方式(Redisson、lettuce、jedis)
<dependencies> <dependency><!-- lettuce 依赖--> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> <version>5.0.5.RELEASE</version&g..原创 2021-12-03 15:07:19 · 1216 阅读 · 1 评论 -
Redis 三种客户端各自的优缺点
三种客户端的区别:1.lettuce:是一个完全非阻塞的redis客户端,使用netty构建,提供响应式、异步和 同步的数据访问。多个线程可以共享同一个RedisConnection连接,利用netty NIO框架来 高效的管理多个连接。支持高级的redis特性,比如哨兵、集群、管道、自动重新连接和Redis数据模型。lettuce 的官网地址是:https://lettuce.io/Advantage:支持同步异步通信模式Lettcue的api是线程安全的,如果不是执行阻塞和事原创 2021-12-03 11:16:26 · 1297 阅读 · 5 评论 -
Redis底层 知识(校招、社招必看)
自己总结的脑图,下面是详细知识,如果对整个图片感兴趣的,评论区评论发高清图原创 2021-11-27 16:22:03 · 586 阅读 · 2 评论 -
Redis Demo最简单的代码实现
目录包结构相关依赖配置代码测试运行代码:运行结果包结构相关依赖 <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> <原创 2021-11-16 10:45:34 · 1170 阅读 · 1 评论