Redis学习(七)对象 文章目录1. 简介2. 对象的类型和编码2.1 对象类型 - type2.2 对象编码 - encoding3. 字符串对象3.1 raw 和 embstr 的区别是?3.2 字符串编码的转换3.3 不同字符串编码对应的命令实现参考1. 简介我们可知,Redis 的用到的主要的数据结构有:简单字符串(SDS)、链表、字典、压缩列表、整数集合等等。Redis 的对象都是由这些数据结构所实现。并且,Redis 为了可以对不同的对象在不同的使用场景下选择更加合适的数据结构实现,Redis 基于这些数据结构创建
Redis学习(六)压缩列表(ziplist) 文章目录11. 什么是压缩列表(ziplist)2. 压缩列表的构成2.1 压缩列表的组成2.2 压缩列表节点的组成2.2.1 previous_entry_length2.2.2 encoding2.2.2.1 字节数组编码2.2.2.2 整数编码2.2.3 content2.2.4 例子3. 压缩列表和数组的区别3.1 内存3.2 数据类型4. 压缩列表存在的“问题”5. 压缩列表的 API6. 参考7. 其他相关文章11. 什么是压缩列表(ziplist)压缩列表(ziplist) 是哈希键的底层
Redis学习(五)整数集合 文章目录1. 整数集合是什么2. 整数集合的数据结构3. 升级3.1 升级的好处3.1.1 提升整数集合的灵活度3.1.2 节约内存4. 降级5. 整数集合 API6. 参考7. 其他相关文章1. 整数集合是什么整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。例如:127.0.0.1:6379> SADD numbers 1 2 3 4 5 6 7 8 9 10(integer) 10
Redis学习(四)跳跃表(skiplist) 1. 什么是跳跃表(skiplist)跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。Redis 使用跳跃表作为有序集合键(ZSET)的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis 就会使用跳跃表来作为有序集合键的底层实现。Redis 只在两个地方用到了跳跃表(skiplist)实现有序集合键在集群节点中用作内部数据结构1.2 为什么需要跳跃表(skipli
Redis学习(三)字典(hash) 1. 什么是字典(hash)Redis 的字典相当于 Java 语言里面的 HashMap,如图所示:它是无序字典,内部存储了很多键值对。实现结构上与 Java 的 HashMap也是一样的,都是**“数组 + 链表”**的二维结构。在数组位置发生 hash 冲突时,就会将冲突的元素使用链表串起来,如图所示:与 Java HashMap 不同的是,Redis 的字典的值只能是字符串,另外它们 rehash 的方式也不一样。因为 Java HashMap 在字典很大时,rehash 是一个耗时的操作
Redis学习(二)链表(list) 1. 什么是链表链表作为一种常用数据结构,链表内置在很多高级的编程语言里面,以为 Redis 使用的 C语言并没有内置这种数据结构,所以 Redis 构建了自己的链表实现。在Redis 中,链表的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用链表作为列表建的底层实现。2. 链表的数据结构2.1 链表节点typedef struct listNode { // 前置节点 struct
Redis学习(一)简单动态字符串(SDS) 文章目录1. 什么是简单动态字符串(SDS)2. SDS 的数据结构2.1 示例2.2 SDS 以 \0 结尾的好处3. SDS 基本使用3.1 SET3.1.1 语法3.1.2 示例3.2 GET3.2.1 语法3.2.2 示例3.3 GETRANGE3.3.1 语法3.3.2 示例3.4 MSET3.4.1 语法3.4.2 示例3.5 MGET3.5.1 语法3.5.2 示例3.6 STRLEN3.6.1 语法3.6.2 示例3.7 SETNX3.7.1 语法3.7.2 示例3.8 SETEX3.8.1
记录:用Nexus3搭建Maven私有仓库,用于install & deploy操作 文章目录1. Maven私有仓库安装1.1 本机配置1.2 官网下载地址1.3 解压1.4 启动1.5 登陆界面1.5.1 登陆1.5.2 更改端口号2. 搭建2.1 主要Type介绍2.2 创建物理存储库2.3 创建Proxy2.4 创建hosted2.4.1 release hosted2.4.2 snapshot hosted2.5 创建group2.6 创建用户2.7 小结3. 使用3.1 项目目录介绍3.2 拉取阿里云仓库的依赖3.2.1 修改settings.xml3.2.2 查看当前生效的se
记录:用Java语言实现双向链表(增删查) 节点对象public class Node<T> { public T value; public Node pre = null; public Node next = null; public Node(T value, Node pre, Node next) { this.value = value; this.pre = pre; this.next = next; }}双向链表publ
SpringBoot + Dubbo + zookeeper Demo 文章目录1.1 什么是 Duboo?1.2 Dubbo 架构1.3 什么是 RPC?1.4 环境搭建1.4.1 zookeeper搭建1.4.2 项目结构1.4.3 interfaces项目1.4.4 provider项目1.4.5 consumer项目1.4.6 测试1.5 小结1.6 参考1.1 什么是 Duboo?Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡
Windows10:双击Docker Desktop Installer.exe文件,没反应。解决办法 1. 现象Windows10在安装Docker Desktop时,双击Docker Desktop Installer.exe后,没有任何反应。2. 解决办法右键Docker Desktop Installer.exe,找到:Troubleshoot compatibility/兼容性疑难解答点击Try recommended settings/尝试推荐的设置点击Test the programDocker Desktop Install.exe正常运行了之后保存这个设置即可..
基于umiJS,跑UT时报:‘“umi“‘ has no exported member named ‘history‘. Did you mean ‘History‘? 1.1 现象1.2 tsconfig.json确保 tsconfig.json 中有配置 @@ 的路径,比如 "@@/*": ["src/.umi/*"]。例子:{ "compilerOptions": { "target": "esnext", "module": "esnext", "moduleResolution": "node", "importHelpers": true, "jsx": "react-jsx", "esModuleI
笔记:Istio & 组件 基础概念学习 文章目录1. Istio是什么?1.1 读音1.2 简介1.3 服务网格是什么?1.4 为什么使用Isito?1.5 Istio 是如何诞生的?1.6 为什么我想用 ISTIO?1.7 目前Istio支持哪些部署环境?1.8 架构1.8.1 组件1.8.1.1 Envoy1.8.1.2 Pilot1.8.1.3 Citadel1.8.1.4 Galley1.8.2 设计目标2. 核心特性2.1 流量管理2.1.1 Istio 流量管理介绍2.1.2 虚拟服务2.1.2.1 为什么使用虚拟服务?2.1.2.1
记录:Istio安装 & 示例学习 文章目录1. 下载Istio安装文件2. 配置istioctl客户端3. 安装 Istio3.1 安装 demo 配置3.2 给命名空间添加标签3.3 验证4. 部署示例应用4.1 部署 Bookinfo 示例应用:4.2 查看4.3 校验4.4 BookingInfo关系图5. 对外开放应用程序5.1 把应用关联到 Istio 网关5.2 确保配置文件没有问题5.3 确定入站 IP 和端口5.3.1 判断我们的 Kubernetes 集群环境是否支持外部负载均衡5.3.2 设置入站 IP 地址和端口5.3
记录:清理Docker Desktop磁盘空间的过程 文章目录1. Docker Desktop磁盘空间不足1.1 缘由1.2 Docker Desktop空间使用情况1.3 备份1.4 清理1.4.1 删掉Docker中没用的镜像1.4.2 查看Docker的磁盘使用情况1.4.3 docker system prune命令1.4.4 du -hs命令1.4.5 du -h --max-depth=1 /var/lib/docker/命令1.4.6 查看占有大量内存的container1.4.7 du -ah –max-depth=1命令1.4.8 清理Do
启动SpringCloud - Gateway,抛Failed to instantiate DiscoveryLocatorProperties 版本信息SpringBoot-version: 2.3.1.RELEASESpringCLoud-version: Hoxton.SR1错误信息org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'discoveryLocatorProperties' defined in class path resource [org/springframework/cloud/gatew
在Docker Desktop中安装Kubernetes 文章目录1. 查看所需K8S的版本2. 镜像代码地址3. 切换分支到所需版本branch4. 加载镜像4.1 执行报错:无法加载文件...,因为在此系统上严禁运行脚本5. 查看Docker镜像6. 开启 Kubernetes7. 验证 Kubernetes 集群状态8. 配置 Kubernetes 控制台8.1 部署 Kubernetes dashboard8.2 开启 API Server 访问代理8.3 访问K8S Dashboard8.4 配置控制台访问令牌8.5 如何配置一个拥有完整权限的token
使用PicGo + Gitee仓库搭建图床,配置Typora实现本地图片自动上传至云仓库 1. 官网链接PicGo Github2. 下载PicGo进到PicGo下载地址,点击下载即可。参考手把手教你用Typora自动上传到picgo图床【教程与排坑】PicGo + Gitee(码云)快速实现markdown图床Typora 设置上传图片功能