Coding changes the world.

redis

redis

1.认识Redis

工作模型:单线程架构和IO多路复用来实现高性能的内存数据库服务
原因:a)单线程简化数据结构和算法的实现;b)避免线程切换和线程竞争的开销
应用场景:缓存/排行系统/统计器应用/社交网络/消息队列/热数据

2.数据类型
2-1.字符串类型
命令相关:使用mget可以减少网络次数,提高开发效率(字符串不能超过512MB)
内部编码:根据当前值的类型和长度决定使用哪种编码

int:8bytes长整型
embstr:小于等于39bytes的字符串
raw:大于39bytes的字符串
底层数据结构:数组
应用场景:缓存功能/计数/共享Seesion/限速
2-2.哈希类型
命令相关:键值本身又是一个键值对结构; set key field
内部编码:

Continue reading

smart pointer

C++11标准下的智能指针

智能指针:

在某种程度上,对垃圾回收技术提供了支持,使得程序能够在内存管理方面更加安全。

那么智能指针有哪几种呢?

1.uniqued_ptr:不允许许多指针共享资源,所指向的空间只能由它所指向,它中存放的地址不允许复制到别的指针上,但可以用标准库中move()把它所指向的对象(地址)转移给别的指针,最后Uniqued_ptr就失效了;

Continue reading