Redis持久化机制
Redis 最常见的一个用处就是当作缓存服务器,将后端数据库中的数据存入内存中,再直接从内存中读取数据是一个非常高效的方式。但是内存存储模式有一个问题,掉电后会丢失数据,所以作为一个数据库来用的话必须考虑一旦服务器宕机,内存中数据的保存。
Redis的持久化机制分为 AOF(Append Only File) 日志和 RDB 快照。
Redis 最常见的一个用处就是当作缓存服务器,将后端数据库中的数据存入内存中,再直接从内存中读取数据是一个非常高效的方式。但是内存存储模式有一个问题,掉电后会丢失数据,所以作为一个数据库来用的话必须考虑一旦服务器宕机,内存中数据的保存。
Redis的持久化机制分为 AOF(Append Only File) 日志和 RDB 快照。
一提到 Redis ,首先的一个印象就是快!但是之前很少研究过Redis底层的一些实现。之前接触Redis比较少,有一个项目是做限流用到了 Redis,大致原理是记录最近访问过的IP和时间,如果下次再有请求到来匹配IP查找之前是否有过访问,如果有则判断时间差是否小于一小时,小于则禁掉,大于则更新时间戳,如果没有就是第一次访问。
实现一个Web服务-(一) 从 net/http 基础网络库中实现了一个 Web Server,基本实现了路由匹配、上下文、中间件等特性。除这些基本的功能外,还有一些更高阶的功能。比如优雅关闭、日志等功能。
熟悉 Golang 的话就会知道,用官方提供的 net/http 标准库搭建一个 Web Server,是一件非常简单的事。既然 Golang 利用其精简的语法实现了 Web Server,那么是有必要知其然和知其所以然。最近看到很多文章都介绍了如何实现一个 Web ,那么今天做一个总结。
golang 中有一个关键字 defer
,golang 的 defer 语句用于延迟调用。defer 会在当前函数返回之前执行 defer 注册的函数。
在 defer 语句所在的函数退出之前调用。defer 可以代替其它语言中 try…catch… 语句,也可以用来处理释放资源等收尾操作,比如关闭文件句柄、关闭数据库连接等。defer 还能用于 panic 的 recovery。