redis的二进制安全机制理解
在看redis菜鸟教程时看到这样一段:
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
遂查询二进制安全的含义,下面是知乎的一段:
redis内部保存的字符串数据结构是自己实现的,并不是沿用c语言的字符串数据结构。c语言的字符串默认是以’\0’结尾的,也就是说你保存的字符串内存在’\0’,c语言自会识别前面的数据,后面的就会被忽略掉,所以说是不安全的。而redis内部虽然也是以’\0’标示一个字符串的结束,但是该字符串的指针内还保存了len和free两个属性,len表示该字符串的实际内容所占长度,free表示分配给该字符串的全部空间-字符串实际内容长度,也就是free表示该字符串的空闲空间长度,所以你对该字符串取值时是通过len属性判断实际内容的长度,然后取的值。拼接字符串时是追加到free空间内中的。所以redis对字符串的求长度和更新内容等操作比c语言要快很多,因为求长度只需要返回该字符串的len属性值,c语言想要遍历整个字符串才会知道长度。拼接字符串“一般”也不需要在重新分配空间,拼接的字符串直接放在free内存中就可以了。
redis的二进制安全机制理解相关推荐
- Redis提供的持久化机制(RDB和AOF)
Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...
- 内存淘汰算法_「承」Redis 原理篇——Redis 的内存回收机制
前言 关于 Redis 的"起承转合",我前面已经用五个篇章的长度作了一个 Redis 基础篇--"起"篇的详细阐述,相信大家无论之前有没有接触过 Redis, ...
- redis主键失效机制
Memcached删除主键的方式与Redis有何异同 首先,Memcached 在删除失效主键时也是采用的消极方法,即 Memcached 内部也不会监视主键是否失效,而是在通过 Get 访问主键时才 ...
- Redis面试 - 内存淘汰机制
Redis面试 - 内存淘汰机制 面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你 ...
- Redis的内存回收机制和数据过期淘汰策略
本文来说下Redis的内存回收机制和数据过期淘汰策略 文章目录 概述 为什么需要内存回收 过期删除策略 定时删除 惰性删除 定期删除 删除策略比对 过期删除策略原理 redisDb结构体定义 expi ...
- Redis持久化与过期机制
文章目录 Redis持久化与过期机制 1. 持久化机制 1.1 RDB(默认) 1.2 AOF 2. 过期机制 2.1 根据过期策略删除数据 2.2 当内存过大装不下新数据时,将启用淘汰机制 3. 其 ...
- 【Redis】回顾Redis知识点之事务机制
回顾Redis知识点之事务机制 Redis事务机制 为什么 Redis 不支持回滚(roll back) 假如事务执行一半的时候Redis宕机怎么办? 为什么需要内存回收? 上一篇回顾下Redis基础 ...
- 帮助你快速懂得心算十进制转二进制。(理解就会)
目录: 1.熟记二进制几个特殊数字. 2.找到二进制的转换规律. 3.转二进制的规则理解. 4.举例消化,一举例你就明白了. ~~----------------------------------- ...
- Redis缓存的工作机制
Redis:缓存的工作机制 Redis缓存的工作机制 缓存的特征 Redis缓存处理请求 Redis作为旁路缓存 Redis中缓存的类型 只读缓存 读写缓存 参考文献 Redis缓存的工作机制 Red ...
- Redis中 锁的机制
Redis中 锁的机制 1. 悲观锁 执行操作前假设当前的操作肯定(或有很大几率)会被打断(悲观).基于这个假设,我们在做操作前就会把相关资源锁定,不允许自己执行期间有其他操作干扰. Redis不支持 ...
最新文章
- uboot的环境变量分析(printenv)
- [HDOJ5327]Olympiad
- 安卓权威编程指南 挑战练习 20.9 创建多版本主题
- 据说:一个线程性能相当于30%核心
- 用友U8案例教程委外管理前台操作
- WordPress自动采集发布文章02-软件批量伪原创
- 驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
- 华为OD社招Java岗面经,已OFFER
- Android 安全框架 -- 总概
- 当遇到error: stray ‘\241‘ in program错误的解决方法
- Innovus——数据准备和验证
- Java入门教程:最全面最简单的Java基础教程
- div从上到下从左到右自动换行显示排列
- Java爬虫抓取网页数据(抓取慕课网论坛为实例)
- tl-wn821n linux驱动程序,tl-wn821n驱动下载
- 高亮标注LaTex文档中的修订
- mac与linux屏幕共享软件,在 Mac 上使用「信息」远程共享你的电脑屏幕
- springBoot:Invalid bound statement (not found): com.hry.seckill.mapper.GoodsMapper.getGoodsVoList
- Win10删除C盘临时文件
- 防火墙的优势主要有哪些