logo头像

待到风起时,扬帆济沧海

单线程的redis为什么快

1. 基本概念Redis性能如此高的原因,我总结了如下几点: 纯内存操作 单线程 高效的数据结构 合理的数据编码 其他方面的优化 在 Redis 中,常用的几种数据结构和应用场景如下: String:缓存、计数器、分布式锁等。 ...

php错误和异常处理总结

1. 异常1.1 抛出异常当一个异常被抛出后代码会立即停止执行,其后的代码将不会继续执行,PHP 会尝试查找匹配的 “catch” 代码块。如果一个异常没有被捕获,而且又没用使用set_exception_handler()作相应的处...

nginx总结

nginx的特性 非阻塞、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发 内存消耗小:开启10个nginx才占150M内存,Nginx采取了分阶段资源分配技术 内置的健康检查功能 master/worker结构:一个...

redis总结

redis总结

1. Redis为什么那么快 纯内存操作 单线程操作,避免了频繁的上下文切换 采用了非阻塞I/O多路复用机制 我们的redis-client在操作的时候,会产生具有不同事件类型的socket。在服务端,有一段I/0多路复用程序,将其...

golang的pprof使用技巧

1.安装易用的pprofgolang自带的prof包是runtime/pprof,这个是低级别的,需要你手动做一些设置等等周边工作,不利于我们快速上手,利用pprof帮助我们解决实际的问题。这里推荐davecheney封装的pprof...

图(grap)

图(grap)

图结构图(Graph)结构也是一种非线性数据结构,并且每个数据元素之间可以任意关联 图包含两个部分 顶点(Vertex):图中的数据元素 边(Edge):图中连接这些顶点的线无向图如果一个图结构中所有的边都没有方向性,这称为无向图。有...

缓存穿透、雪崩、击穿的解决方法

缓存穿透、雪崩、击穿的解决方法

1.缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key...