引言
本次对上一次的数据结构知识进行补充,主要有redis数据结构的相关应用场景和内存相关知识
引用计数-内存
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应用场景 【redis数据结构附录】redis由于有多种数据结构,每种数据结构都有着不同的api和对应的时间复杂度,因此在实际工作或者项目开发中,应该面对不同场景选择不同的redis数据结构,因为自己在字节工作,会常常使用redis,下面根据自己平时的一些总结进行阐述,这个部分会持续更新
OK
redis> OBJECT REFCOUNT A
(integer) 2
自己的网址:www.shicoder.top
欢迎加群聊天 452380935
本文由博客一文多发平台 OpenWrite 发布!
推荐阅读
- Golang笔记|【记录】go mod命令 & go.mod 文件解析
- GoLang|GoLang之启动goroutine、sync.WaitGroup
- 多协程文件读写并排序(尚硅谷Go语言)
- 多协程累加读写(尚硅谷GO语言)
- 基于知名微服务框架go-micro开发gRPC应用程序
- 面试官(for 这道题尽然难道了所有人)
- redis服务器
- Go语言-GMP调度模型
- golang|GO语言goroutine