共计 657 个字符,预计需要花费 2 分钟才能阅读完成。
引言
本次对上一次的数据结构常识进行补充,次要有 redis 数据结构的相干利用场景和内存相干常识
<!– more–>
援用计数 - 内存
redis 中的对象回收机制是采纳援用计数的形式,首先咱们能够通过 redis 对象构造体代码可知
/*
* Redis 对象
*/
typedef struct redisObject {
...
// 援用计数
int refcount;
...
} robj;
下面表格是和援用计数字段相干的 api
援用计数 - 共享
咱们晓得援用计数能够实现对象内存什么时候销毁,那么援用计数也能够用来对象共享
比方此时有一个对象 A,值为 10,新建了一个对象 B,值和类型都与 A 一样,则能够让他们指向同一个地址,而后援用计数 +1
留神:redis 初始化时候,会主动创立 10000 个字符串对象,包含 0 -9999 这 10000 个整数,当服务器要用到这些数字的字符串对象时候,redis 就不须要从新创立。(能够批改 redis.h/REDIS_SHARED_INTEGERS
进行批改)
redis> set A 100
OKredis> OBJECT REFCOUNT A
(integer) 2
利用场景
redis 因为有多种数据结构,每种数据结构都有着不同的 api 和对应的工夫复杂度,因而在理论工作或者我的项目开发中,应该面对不同场景抉择不同的 redis 数据结构,因为本人在字节工作,会经常应用 redis,上面依据本人平时的一些总结进行论述,这个局部会继续更新
本人的网址:www.shicoder.top
欢送加群聊天 452380935
本文由博客一文多发平台 OpenWrite 公布!
正文完