遥不可及梦
码龄11年
关注
提问 私信
  • 博客:461,865
    社区:4,015
    问答:1,287
    467,167
    总访问量
  • 160
    原创
  • 386,846
    排名
  • 47
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2013-12-22
博客简介:

辛明辉的专栏

博客描述:
baby step
查看详细资料
个人成就
  • 获得52次点赞
  • 内容获得35次评论
  • 获得160次收藏
创作历程
  • 41篇
    2020年
  • 12篇
    2019年
  • 10篇
    2018年
  • 5篇
    2017年
  • 93篇
    2016年
  • 1篇
    2014年
成就勋章
TA的专栏
  • redis
    1篇
  • grpc
    5篇
  • go基础知识笔记
    4篇
  • nsq
    9篇
  • redis基础知识笔记
    2篇
  • http知识笔记
    1篇
  • c内存管理
    3篇
  • 网络编程
    8篇
  • c++
    11篇
  • linuxc
    2篇
  • 博客编写
    1篇
  • linux
    2篇
  • python
    8篇
  • linux操作系统
    1篇
  • 数据库
    8篇
  • windows
    3篇
  • linux系统设置
    2篇
  • 算法
    6篇
  • 安装
    1篇
  • linux进程
    1篇
  • docker
    21篇
  • linux内核源码
    4篇
  • vim命令
    1篇
  • linux系统编程
    2篇
  • shell
    12篇
  • gcc
    1篇
  • github
  • 毕设
    2篇
  • 爬虫
    2篇
  • 机器学习
    2篇
  • 词频统计
    1篇
  • awk
    1篇
  • sort
    1篇
  • leetcode
    1篇
  • Mysql
    25篇
  • 转载
    2篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Redis有哪些慢操作

redis 数据类型与底层数据结构的关系可以看到,String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称为集合类型,它们的特点是一个键对应了一个集合的数据。redis 3.2后引入了quicklist结构键和值用什么结构组织Redis 使用了一个哈希表来保存所有键值对。一个哈希表,其实就是一个数组,数组的每个元素称为一个哈希桶。所以,我们常说,一个哈希表是由
原创
发布博客 2020.11.09 ·
449 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

redis组件大纲

访问框架索引模块存储模块高可用集群支持模块高扩展集群支持模块
原创
发布博客 2020.11.09 ·
338 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mysql SQL分析优化

慢SQL诱因无索引、索引失效锁等待InnoDB支持行锁,MyISAM支持表锁InnoDB支持行锁更适合高并发场景,但行锁有可能会升级为表锁一种情况是在批量更新时行锁是基于索引加的锁,如果在更新操作时,条件索引失效,那么行锁会升级为表锁基于表锁的数据库操作,会导致SQL阻塞等待,影响执行速度在写大于读的情况下,不建议使用MyISAM行锁相对于表锁,虽然粒度更细,并发能力提升,但也带来了新的问题,那就是死锁不恰当的SQLSELECT *SELECT COUNT(*)
原创
发布博客 2020.10.29 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL -- 数据恢复

DELETE使用DELETE语句误删除了数据行,可以使用Flashback通过闪回把数据恢复Flashback恢复数据的原理:修改binlog的内容,然后拿到原库重放。前提:binlog_format=ROW和binlog_row_image=FULL针对单个事务对于INSERT语句,将Write_rows event改成Delete_rows event对于DELETE语句,将Delete_rows event改成Write_rows event对于UPDATE语句,binlog里面记录了
原创
发布博客 2020.10.26 ·
282 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL -- KILL + 客户端

KILLKILL QUERY THREAD_ID 终止这个线程中正在执行的语句KILL [ CONNECTION ] THREAD_ID 断开这个线程的连接,如果该线程有语句在执行,先停止正在执行的语句锁等待表初始化CREATE TABLE `t` ( `id` INT(11) NOT NULL, `c` INT(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;INSERT INTO t VALUES (1,1);操作次序
原创
发布博客 2020.10.26 ·
293 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MySQL 全表扫描

Server层-- db1.t有200GBmysql -h$host -P$port -u$user -p$pwd -e "select * from db1.t" > $target_file查询数据InnoDB的数据是保存在主键索引上,全表扫描实际上是直接扫描表t的主键索引获取一行,写到net_buffer中,默认为16K,控制参数为net_buffer_length重复获取行,直到写满net_buffer,然后调用网络接口发出去如果发送成功,就清空net_buffer,然后继
原创
发布博客 2020.10.10 ·
1259 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Mysql Join

表的初始化CREATE TABLE `t2` ( `id` INT(11) NOT NULL, `a` INT(11) DEFAULT NULL, `b` INT(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `a` (`a`)) ENGINE=InnoDB;DROP PROCEDURE IF EXISTS idata;DELIMITER ;;CREATE PROCEDURE idata()BEGIN DECLA
原创
发布博客 2020.10.09 ·
193 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode两数之和

//给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 //// 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 //// //// 示例: //// 给定 nums = [2, 7, 11, 15], target = 9////因为 nums[0] + nums[1] = 2 + 7 = 9//所以返回 [0, 1]// // Related Topics 数组 哈希表 //
原创
发布博客 2020.09.29 ·
154 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL JOIN优化

表初始化CREATE TABLE t1(id INT PRIMARY KEY, a INT, b INT, INDEX(a));CREATE TABLE t2 LIKE t1;DROP PROCEDURE idata;DELIMITER ;;CREATE PROCEDURE idata()BEGIN DECLARE i INT; SET i=1; WHILE (i <= 1000) DO INSERT INTO t1 VALUES (i,1001-
原创
发布博客 2020.09.29 ·
413 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

grpc Q&A问答

gRPC Metadata 是通过什么传输?调用 grpc.Dial 会真正的去连接服务端吗?会,但是是异步连接的,连接状态为正在连接。但如果你设置了 grpc.WithBlock 选项,就会阻塞等待(等待握手成功)。另外你需要注意,当未设置 grpc.WithBlock 时,ctx 超时控制对其无任何效果。调用 ClientConn 不 Close 会导致泄露吗?会,除非你的客户端不是常驻进程,那么在应用结束时会被动地回收资源。但如果是常驻进程,你又真的忘记执行 Close语句,会造成的泄露。如
原创
发布博客 2020.09.22 ·
837 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

grpc 客户端连接请求源码

func main() { conn, err := grpc.Dial(":"+PORT, grpc.WithInsecure()) ... defer conn.Close() client := pb.NewSearchServiceClient(conn) resp, err := client.Search(context.Background(), &pb.SearchRequest{ Request: "gRPC", }) ...}创建拨号连接func D
原创
发布博客 2020.09.22 ·
1410 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

grpc Server初始化注册监听源码

func main() { server := grpc.NewServer() pb.RegisterSearchServiceServer(server, &SearchService{}) lis, err := net.Listen("tcp", ":"+PORT) server.Serve(lis)}为什么四行代码,就能够起一个 gRPC Server初始化// grpc.NewServer()func NewServer(opt ...ServerOption)
原创
发布博客 2020.09.21 ·
1342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

grpc client与servre如何交互

对 Client 端调用 Server 端进行抓包去剖析。如图所示MagicSettingsHeadersDataSettingsWindow_updatePingHeadersDataHeadersWindow_UpdatepingMagicMagic 帧的主要作用是建立 HTTP/2 请求的前言。在 HTTP/2 中,要求两端都要发送一个连接前言,作为对所使用协议的最终确认,并确定 HTTP/2 连接的初始设置,客户端和服务端各自发送不同的连接前言。而上图中的 Ma
原创
发布博客 2020.09.21 ·
474 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

grpc-go 调用模式

一元调用(同步请求)servertype SearchService struct{}func (s *SearchService) Search(ctx context.Context, r *pb.SearchRequest) (*pb.SearchResponse, error) { return &pb.SearchResponse{Response: r.GetRequest() + " Server"}, nil}const PORT = "9001"func
原创
发布博客 2020.09.21 ·
419 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存击穿策略singleFlight

简介缓存击穿:缓存失效时,有大量并发请求过来。大量请求从缓存上拿不到数据,请求压力全部打到数据库上。场景1:活动结束前。为了完成活动任务,请求活动配置数据请求一般会有爆发性增长。当你的服务没有做防止缓存击穿的话,就有可能让你的数据库宕机singleFlight包singleFlight会将对同一个key的所有请求,变成一个请求,所有请求共享一个请求返回的数据。场景:活动尾声大量并发请求获取活动配置数据。设置该活动key为activity_key,所有请求都会开个goroutine处理。所有请求都通
原创
发布博客 2020.09.16 ·
597 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL 用户临时表

临时表 VS 内存表内存表,指的是使用Memory引擎的表,建表语法:CREATE TABLE … ENGINE=Memory。所有数据都保存在内存中,系统重启时被清空,但表结构还在临时表,可以使用各种引擎如果使用的是InnoDB或者MyISAM引擎,数据需要写到磁盘上当然也可以使用Memory引擎特征session Asession BCREATE TEMPORARY TABLE t(c int) ENGINE=MyISAM;(创建临时表)SHOW CR
原创
发布博客 2020.07.31 ·
369 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL 内部临时表

UNIONUNION语义:取两个子查询结果的并集,重复的行只保留一行表初始化CREATE TABLE t1(id INT PRIMARY KEY, a INT, b INT, INDEX(a));DELIMITER ;;CREATE PROCEDURE idata()BEGIN DECLARE i INT; SET i=1; WHILE (i<= 1000) DO INSERT INTO t1 VALUES (i,i,i); SET
原创
发布博客 2020.07.30 ·
506 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MySQL Memory引擎

数据组织表初始化CREATE TABLE t1 (id INT PRIMARY KEY, c INT) ENGINE=Memory;CREATE TABLE t2 (id INT PRIMARY KEY, c INT) ENGINE=InnoDB;INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0);INSERT INTO t2 VALUES (1,1),(2,2),(3,3),(4,4)
原创
发布博客 2020.07.28 ·
615 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

MYSQL 自增主键

自增不连续表初始化CREATE TABLE `t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `c` INT(11) DEFAULT NULL, `d` INT(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `c` (`c`)) ENGINE=InnoDB;```## 自增值```goINSERT INTO t VALUES (null,1,1);-- AUTO_INCREMEN
原创
发布博客 2020.07.27 ·
471 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

MySQL INSERT语句的锁

INSERT…SELECT表初始化CREATE TABLE `t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `c` INT(11) DEFAULT NULL, `d` INT(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `c` (`c`)) ENGINE=InnoDB;INSERT INTO t VALUES (null,1,1);INSERT INTO t VALUES (null
原创
发布博客 2020.07.22 ·
511 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多