数据库
文章平均质量分 96
数据库相关:MySQL、Mongo、Redis 等
wifiiiiiiii
You may see me struggle, but you will never see me fall
展开
-
Redis学习(七)对象
文章目录1. 简介2. 对象的类型和编码2.1 对象类型 - type2.2 对象编码 - encoding3. 字符串对象3.1 raw 和 embstr 的区别是?3.2 字符串编码的转换3.3 不同字符串编码对应的命令实现参考1. 简介我们可知,Redis 的用到的主要的数据结构有:简单字符串(SDS)、链表、字典、压缩列表、整数集合等等。Redis 的对象都是由这些数据结构所实现。并且,Redis 为了可以对不同的对象在不同的使用场景下选择更加合适的数据结构实现,Redis 基于这些数据结构创建原创 2021-06-15 18:57:07 · 579 阅读 · 1 评论 -
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) 是哈希键的底层原创 2021-06-01 17:35:29 · 677 阅读 · 0 评论 -
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翻译 2021-06-01 14:22:57 · 258 阅读 · 0 评论 -
Redis学习(四)跳跃表(skiplist)
1. 什么是跳跃表(skiplist)跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。Redis 使用跳跃表作为有序集合键(ZSET)的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis 就会使用跳跃表来作为有序集合键的底层实现。Redis 只在两个地方用到了跳跃表(skiplist)实现有序集合键在集群节点中用作内部数据结构1.2 为什么需要跳跃表(skipli原创 2021-05-31 07:49:19 · 624 阅读 · 0 评论 -
Oracle 换种方式写IS NULL,避免全表扫描
主要是想让自己记住这种写法IS NOT NULL 并没有找到很好的方法表:Student字段:ID, NAME, REMARKSCREATE TABLE STUDENT ( ID NUMBER(9,0) PRIMARY KEY, NAME VARCHAR2(20), REMARKS VARCHAR2(200));用NVL()函数代替IS NULL-...原创 2019-10-14 14:48:25 · 1037 阅读 · 0 评论 -
Oracle Create index时,加online与否的实际现象
1. 不加 online当你添加index所对应的那张表,碰巧在你添加的时候,正在进行DML操作,并且尚未commit。那就很有可能会遇到:resource busy and acquire with nowait specified这个错误。2. 添加 online,则可以解决上面的情况。之所以有这种需求,是因为我们有一个存储过程一直在操作某些表的数据,如果要停下来,添加ind...原创 2019-07-25 22:30:45 · 764 阅读 · 0 评论 -
使用ORACLE系统包UTL_SMTP发送邮件 遇到的一些问题以及解决过程
Oracle PLSQL + QQ mail【1】完成基本的代码CREATE OR REPLACEPACKAGE BODY LOCAL_EMAIL_TEST AS PROCEDURE LOCAL_SEND_EMAIL_TEST(P_RECIPIENT VARCHAR2,P_SUBJECT VARCHAR2,P_MESSAGE VARCHAR2) AS V_MAIL_...原创 2019-01-16 21:57:10 · 2492 阅读 · 0 评论 -
Redis学习(三)字典(hash)
1. 什么是字典(hash)Redis 的字典相当于 Java 语言里面的 HashMap,如图所示:它是无序字典,内部存储了很多键值对。实现结构上与 Java 的 HashMap也是一样的,都是**“数组 + 链表”**的二维结构。在数组位置发生 hash 冲突时,就会将冲突的元素使用链表串起来,如图所示:与 Java HashMap 不同的是,Redis 的字典的值只能是字符串,另外它们 rehash 的方式也不一样。因为 Java HashMap 在字典很大时,rehash 是一个耗时的操作原创 2021-05-25 18:35:33 · 548 阅读 · 0 评论 -
Redis学习(二)链表(list)
1. 什么是链表链表作为一种常用数据结构,链表内置在很多高级的编程语言里面,以为 Redis 使用的 C语言并没有内置这种数据结构,所以 Redis 构建了自己的链表实现。在Redis 中,链表的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用链表作为列表建的底层实现。2. 链表的数据结构2.1 链表节点typedef struct listNode { // 前置节点 struct原创 2021-05-23 10:41:31 · 408 阅读 · 2 评论 -
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原创 2021-05-22 15:29:22 · 888 阅读 · 0 评论 -
【Docker CLI】将MySQL容器打包成镜像 & 加载
文章目录Docker CLI1. 找到容器2. docker commit3. docker save4. 将原先MySQL容器挂载的目录复制一份5. 加载打包好的镜像6. 准备docker-compose,并将挂载路径指向之前备份的文件夹参考1. docker commit命令说明2. docker save命令说明3. docker load命令说明Docker官网Docker CLI1. 找到容器> docker ps2. docker commit> docker comm原创 2020-12-08 18:46:46 · 1427 阅读 · 0 评论 -
OceanBase试用版【学习记录】
1. 什么是OceanBaseOceanBase 数据库是阿里巴巴和蚂蚁集团不基于任何开源产品,完全自研的原生分布式关系数据库软件,在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,具备卓越的水平扩展能力,全球首家通过 TPC-C 标准测试的分布式数据库,单集群规模超过 1500 节点。 产品具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性, 承担支付宝 100% 核心链路,在国内几十家银行、保险公司等金融客户的核心系统中稳定运行。2. OceanBase 安原创 2020-10-30 16:35:11 · 908 阅读 · 0 评论 -
Redis 之 SessionCallback & RedisCallback 使用
SessionCallback & RedisCallback 的作用是:让RedisTemplate进行回调,通过它们可以在同一条连接下执行多个Redis命令。BeforeredisTemplate.opsForValue().set("key0", "value0");redisTemplate.opsForHash().put("hash0", "field", "test");SessionCallbackredisTemplate.execute(new SessionCal原创 2020-10-14 07:56:10 · 9456 阅读 · 1 评论 -
VirtualBox CentOS7 Docker上安装MySQL,并适用宿主机进行连接
关于如何使用虚拟机安装docker、搭建Gitlab,可以看之前的文章。里面包含了网络配置、端口映射等过程 从VirtualBox到Docker到Gitlab的安装这篇文章,主要是在之前的基础上,简单搭建MySQL。第一步:通过ssh进入Linux我这里使用的Putty工具。一般默认端口是:22,这里也是看之前端口映射是,我们配置的是哪一个端口另一种方式,是通过cmd命令进入LInux输入ssh [email protected]第二步:下载MySQL镜像我这里下载的是MySQL5.6原创 2020-05-23 12:54:39 · 518 阅读 · 0 评论