![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
qq_27388039
这个作者很懒,什么都没留下…
展开
-
redis持久化机制之RDB
redis之所以能支持10W/s的读写操作主要是依靠1、所有数据都在内存。2、单线程架构,避免了多线程可能产生的竞争为题。3、使用c语言实现,距离操作系统更近。4、redis的代码经过作者精打细磨及优雅与一身。5、epoll模型io多路复用,将连接、读写、关闭都转换为事件,不在网络IO上浪费过多的时间但是所有数据都存放在内存中,就带来一个问题,如果服务器突然宕机,那么内存中的数据会都丢失,所以需要...原创 2018-04-07 23:20:30 · 256 阅读 · 0 评论 -
redis常用数据类型
redis常见数据类型有:字符串、哈希、列表、集合、有序集合。字符串: 内部编码: 1、int:8个字节的长整型。 2、 embstr:小于等于39个字节的字符串。 3、raw:大于39个字节的字符串。使用场景:缓存各种信息、计数、session共享、手机验证码发送频率限制等等。----------------------------------...原创 2018-04-01 22:08:32 · 137 阅读 · 0 评论 -
redis持久化机制之AOF
通过设置配置项appendonly yes即可开启AOF持久化,默认不开启AOF的工作流程:命令写入aof buffer-->同步到文件-->文件重写-->启动时加载AOF文件。如下图可以通过参数appendfsync参数来控制缓冲区同步文件策略,参数及其说明如下表可配置值说明always每次命令写入aof_buffer后都会调用fsync同步到aof文件,fsync完成后线程才...原创 2018-04-14 11:36:03 · 1011 阅读 · 0 评论 -
redis持久化优化
1、生成RDB快照和AOF重写都会fork子线程来执行,但是fork子线程时会阻塞主线程,fork的实现与内存中的数据直接相关,redis内存中的数据越多则fork阻塞的时间就越长。2、redis的fork操作采用写时复制技术,虽然不用全量拷贝主线程内存中的数据,但是会复制主线程的空间内存也表,10GB大约需要20MB的内存页表。3、优化主要从cpu、内存、磁盘这几个方面着手:cpu:1、redi...原创 2018-04-14 21:12:16 · 717 阅读 · 0 评论