引言

本次对上一次的数据结构常识进行补充,次要有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
OK

redis> OBJECT REFCOUNT A
(integer) 2

利用场景

redis因为有多种数据结构,每种数据结构都有着不同的api和对应的工夫复杂度,因而在理论工作或者我的项目开发中,应该面对不同场景抉择不同的redis数据结构,因为本人在字节工作,会经常应用redis,上面依据本人平时的一些总结进行论述,这个局部会继续更新

本人的网址:www.shicoder.top
欢送加群聊天 452380935
本文由博客一文多发平台 OpenWrite 公布!