在看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的二进制安全机制理解相关推荐

  1. Redis提供的持久化机制(RDB和AOF)

    Redis提供的持久化机制 Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却 ...

  2. 内存淘汰算法_「承」Redis 原理篇——Redis 的内存回收机制

    前言 关于 Redis 的"起承转合",我前面已经用五个篇章的长度作了一个 Redis 基础篇--"起"篇的详细阐述,相信大家无论之前有没有接触过 Redis, ...

  3. redis主键失效机制

    Memcached删除主键的方式与Redis有何异同 首先,Memcached 在删除失效主键时也是采用的消极方法,即 Memcached 内部也不会监视主键是否失效,而是在通过 Get 访问主键时才 ...

  4. Redis面试 - 内存淘汰机制

    Redis面试 - 内存淘汰机制 面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你 ...

  5. Redis的内存回收机制和数据过期淘汰策略

    本文来说下Redis的内存回收机制和数据过期淘汰策略 文章目录 概述 为什么需要内存回收 过期删除策略 定时删除 惰性删除 定期删除 删除策略比对 过期删除策略原理 redisDb结构体定义 expi ...

  6. Redis持久化与过期机制

    文章目录 Redis持久化与过期机制 1. 持久化机制 1.1 RDB(默认) 1.2 AOF 2. 过期机制 2.1 根据过期策略删除数据 2.2 当内存过大装不下新数据时,将启用淘汰机制 3. 其 ...

  7. 【Redis】回顾Redis知识点之事务机制

    回顾Redis知识点之事务机制 Redis事务机制 为什么 Redis 不支持回滚(roll back) 假如事务执行一半的时候Redis宕机怎么办? 为什么需要内存回收? 上一篇回顾下Redis基础 ...

  8. 帮助你快速懂得心算十进制转二进制。(理解就会)

    目录: 1.熟记二进制几个特殊数字. 2.找到二进制的转换规律. 3.转二进制的规则理解. 4.举例消化,一举例你就明白了. ~~----------------------------------- ...

  9. Redis缓存的工作机制

    Redis:缓存的工作机制 Redis缓存的工作机制 缓存的特征 Redis缓存处理请求 Redis作为旁路缓存 Redis中缓存的类型 只读缓存 读写缓存 参考文献 Redis缓存的工作机制 Red ...

  10. Redis中 锁的机制

    Redis中 锁的机制 1. 悲观锁 执行操作前假设当前的操作肯定(或有很大几率)会被打断(悲观).基于这个假设,我们在做操作前就会把相关资源锁定,不允许自己执行期间有其他操作干扰. Redis不支持 ...

最新文章

  1. uboot的环境变量分析(printenv)
  2. [HDOJ5327]Olympiad
  3. 安卓权威编程指南 挑战练习 20.9 创建多版本主题
  4. 据说:一个线程性能相当于30%核心
  5. 用友U8案例教程委外管理前台操作
  6. WordPress自动采集发布文章02-软件批量伪原创
  7. 驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
  8. 华为OD社招Java岗面经,已OFFER
  9. Android 安全框架 -- 总概
  10. 当遇到error: stray ‘\241‘ in program错误的解决方法
  11. Innovus——数据准备和验证
  12. Java入门教程:最全面最简单的Java基础教程
  13. div从上到下从左到右自动换行显示排列
  14. Java爬虫抓取网页数据(抓取慕课网论坛为实例)
  15. tl-wn821n linux驱动程序,tl-wn821n驱动下载
  16. 高亮标注LaTex文档中的修订
  17. mac与linux屏幕共享软件,在 Mac 上使用「信息」远程共享你的电脑屏幕
  18. springBoot:Invalid bound statement (not found): com.hry.seckill.mapper.GoodsMapper.getGoodsVoList
  19. Win10删除C盘临时文件
  20. 防火墙的优势主要有哪些

热门文章

  1. uniapp 公众号微信支付提示 调用支付jsapi缺少参数appid
  2. Request模块实战04 ---- 爬取豆瓣电影排行榜
  3. 冰冻三尺非一日之寒,坚持,坚持,再坚持!
  4. u盘如何在计算机应用内存,详解为什么8G内存U盘在电脑上显示不到8G只有7.5G
  5. matlab 太阳系仿真,三维仿真太阳系
  6. 站桩功(初稿)王芗斋 著
  7. yolov5测试单张图片
  8. 【此后无良辰】实验13 FAT12文件系统
  9. java导出excel_Java使用poi组件导出Excel格式数据
  10. Python入门随记