
数据存储
文章平均质量分 68
关系型数据库、NoSql存储、缓存等存储相关的技术分享
技术宝哥
15年互联网大厂技术人,现京东联盟技术负责人,深耕技术管理、技术架构、广告技术、AI大模型,致力于技术传播、分享
微信公众号:技术宝哥
展开
-
Redis(1):对Redis必须知道的7个技术问题
Redis作为高性能内存数据库,其应用场景广泛,包括缓存、分布式锁、实时统计、消息队列和发布/订阅等。Redis选择单线程架构以规避锁竞争和上下文切换,简化架构并保证操作的原子性。IO多路复用技术使单线程Redis能高效处理高并发请求,Epoll机制因其高效管理文件描述符和灵活触发模式成为首选。实现分布式锁时,需注意异常情况,如进程崩溃可能导致死锁,可通过合成指令解决。查找大量特定前缀的Key时,应使用Scan命令避免阻塞。大量key同时过期可能导致Redis卡顿,可通过设置随机过期时间分散处理。大key和原创 2025-05-15 22:06:11 · 904 阅读 · 0 评论 -
Redis(2):Redis + Lua为什么可以实现原子性
Redis与Lua脚本结合,为原子性操作提供了高效解决方案。原子性在关系型数据库中指事务的完整性,而在Redis中,Lua脚本的执行被视为一个不可分割的整体,确保在执行期间不受其他操作干扰。Redis通过EVAL/EVALSHA命令执行Lua脚本,其中redis.call()和redis.pcall()用于执行Redis命令,前者在出错时阻断脚本,后者则继续执行。Redis的事务机制由MULTI/EXEC命令完成,但不支持回滚。部署方式影响Lua脚本的原子性:单机和主从部署能保证原子性,而Cluster部署原创 2025-05-15 22:26:55 · 530 阅读 · 0 评论 -
Redis(3):研发一定要知道Redis集群的那几个问题
Redis集群通过哈希槽算法实现数据分布,支持去中心化架构,确保高可用性和数据一致性。集群采用gossip协议进行节点间通信,维护元数据信息,但可能面临消息延时和网络开销问题。在扩缩容时,数据迁移可能导致节点阻塞,影响集群性能。此外,集群带宽消耗主要来自读写命令和gossip消息,需合理规划节点部署和消息发送频率以优化性能。理解这些核心原理和策略,对于构建和维护高效、稳定的Redis集群至关重要。原创 2025-05-16 08:51:58 · 745 阅读 · 0 评论 -
redis持久化性能测试
经过测试,在redis同时开启rdb和aof做持久化数据备份的情况下:测试在环境redis的内存从0-3.35G的情况下,每个命令的执行性能基本稳定,除LRANGE命令外基本都在5W request/s以上,重启速度随着持久化文件的变大,而变长在redis数据需要内存3.35G,aof:5.9G的情况下,关闭redis,执行shutdown:33.91s,启动加载数据到redis内原创 2014-03-11 15:39:02 · 4191 阅读 · 0 评论 -
redis实现分布式锁
使用redis实现分布式锁比zookeeper简单关于分布式锁的存活性和安全性的保证:1.安全性:互斥现象在。在任何时候都应该仅仅有一个client hold a lock。 2.存活性A:死锁的释放。很多时候可能获得一个锁,即使client锁住的资源挂了或者只得到资源的部分。 3.存活性B:容错能力。尽可能的redis核心的node是正常工作的,clients能够得到和释放锁。原创 2016-01-14 16:41:54 · 1145 阅读 · 0 评论 -
redis持久化方式
现在有 项目用到redis的做内存,同时也需要做持久化备份,看了一下redis自身的持久化redis自身支持两种持久化方式RDB和AOF1、RDB是定时对数据库内存做快照的方式备份整个内存数据库,这种方式,在redis或者服务器故障的时候有可能会丢失大量数据,但是这种方式是主进程fork一个子进程来执行,不影响到主进程的效率,也不会阻塞,同时保存数据集的完整性,如果对数据丢失能容忍一个小时原创 2014-02-26 17:32:21 · 1399 阅读 · 0 评论 -
shell笔记-使用awk数据分析
shell awk分组 数据分析最近双十一红包项目,需要自己做数据分析,好久不使用awk,有些基本都忘记了,复习一下并记录供以后使用查询吧awk学习博客:http://man.linuxde.net/awk这个站点清晰、简单的介绍了awk的原理。awk的基本使用方法不再一一介绍。原创 2016-11-12 17:47:21 · 1453 阅读 · 0 评论 -
PowerDesigner设计时表显示注释选项
PowerDesigner设计时表显示注释选项:选定编辑的表,右键- >Properties- >Columns- >Customize Columns and Filter(或直接用快捷键Ctrl+U)- >Comment(前面打勾)- >OK原创 2013-06-24 10:09:17 · 1470 阅读 · 0 评论 -
mysql查询更新时的锁表机制分析
转自:http://www.cnblogs.com/donknap/archive/2010/01/27/1657373.html为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用转载 2012-11-15 10:35:50 · 877 阅读 · 0 评论 -
mysql性能分析
mysql 性能优化方案内容简介:这是一篇关于mysql 性能,mysql性能优化,mysql 性能优化的文章。 网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信原创 2013-06-04 19:26:15 · 951 阅读 · 0 评论 -
MySQL导入和导出sql脚本-导出表中前n条数据
转自:http://blog.youkuaiyun.com/xiaoyu411502/article/details/5319232首先,使用mysqldump命令的前提是,在Cmd中进入mysql安装目录下的bin目录下,才可以使用该命令。我的mysql安装在E:盘,所以,首先进入bin目录下:E:/Program Files/MySQL/MySQL Server 5.0/bin>然后,你就转载 2012-07-19 12:52:19 · 4637 阅读 · 0 评论 -
mysql show processlist命令检查mysql锁的方法
processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令。1. 进入mysql/bin目录下输入mysqladmin processlist;2. 启动mysql,输入show processlist;如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)。得到数转载 2012-11-15 10:22:26 · 866 阅读 · 0 评论 -
oracle联合子查询
表的联合查询:oracle 多表联合查询,统计查询,组函数,order by,having,子查询,集合运算,关键字: oracle 多表 联合 查询 统计 组函数 order by having 子查询 集合 运算 多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。 忘记说明表的连接条件是常见的一种错误,这时查询将会产生表连接的笛卡尔积(即一个表中的每条记转载 2011-03-18 16:02:00 · 1716 阅读 · 0 评论 -
mysql与Oracle的一些操作区别
1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATE SEQUENCE 序列号的名称 (最好是表名+序转载 2011-08-05 18:18:31 · 728 阅读 · 0 评论 -
oracle的索引优缺点分析
转自:http://database.ctocio.com.cn/116/12198616.shtml以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍…… 以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Ora转载 2012-02-01 10:31:02 · 1908 阅读 · 0 评论 -
truncate和 delete的区别
不同点: 1. 的区别只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.原创 2012-02-21 17:04:58 · 808 阅读 · 0 评论 -
sql优化策略
这些都是从网上查资料综合起来的,供大家参考。欢迎补充~1、选择最有效率的表名顺序(只在基于规则的优化器中有效)首先先设置规则的优化器,使用语句:alter system set optimizer_mode=RULE;ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(我们称它为驱动表或基础表,driving table)将被最先处理.原创 2012-02-23 15:04:03 · 718 阅读 · 0 评论 -
存储过程优缺点及使用原则
存储过程优缺点及使用原则 一.存储过程介绍 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。二.存储过程优点 1. 速度快。存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL 语句每执行一次就编译一次转载 2012-02-21 17:26:40 · 945 阅读 · 0 评论 -
mysql 主从同步原理
Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Maste转载 2013-06-04 15:45:34 · 887 阅读 · 0 评论 -
excel文件直接导入mysql数据库的方法
一、假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格table,对应的字段分别是col1、col2、col3二、在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:1、增加一列(假设是D列)2、在第一行的D列,就是D1中输入公式:=CONCATENATE("insert into table (col1,col2,col3) values原创 2011-06-17 14:37:00 · 1266 阅读 · 0 评论 -
mysql从同步管理
MYSQL管理之主从同步管理MYSQL主从同步架构是目前使用最多的数据库架构之一,尤其是负载比较大的网站,因此对于主从同步的管理也就显得非常重要,新手往往在出现主从同步错误的时候不知道如何入手,这篇文章就是根据自己的经验来详细叙述mysql主从的管理。MYSQL主从同步的作用(1) 数据分布(2) 负载平衡(load balancing)(3) 备份(4) 高可用性(hig转载 2013-06-04 15:23:27 · 1242 阅读 · 0 评论 -
rownum详解
<br />ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1。<br />现在列举以下例子,<br />1、加深理解rownum:<br />1). select rownum,c1 from t1 where rownum != 10 为何是返回前9条数据呢?它与 select rownum,c1 from tablename <br />where rownum < 10 返回的结果集是一样的呢?<br /> 因为是在查询到结原创 2011-03-16 17:53:00 · 4268 阅读 · 0 评论