前提知识?我们先从百科上摘下Redis的解释: Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。(不用过多在意ANSI,它只是一个标准,你可以理解为早期民间版本很多,后来统一了标准,大学课程里包括现在在用的都是标准化后的C语言版本) 没错!Redis的底层是由 C语言 实现的!大学不管是什么专业应该都有这个课,但是不管大家还
转载
2023-06-19 14:14:09
186阅读
前言Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis
转载
2023-10-10 21:55:59
38阅读
1 基本概念1.1 常见考点1、Redis 为何这么快?1)基于内存;2)单线程减少上下文切换,同时保证原子性;3)IO多路复用;4)高级数据结构(如 SDS、Hash以及跳表等)。2、为何使用单线程?官方答案因为 Redis 是基于内存的操作,CPU 不会成为 Redis 的瓶颈,而最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且 CPU 不会成为瓶颈,那就顺理成章地采用单线程的方
转载
2023-09-19 19:23:25
118阅读
前言Redis 数据库里面的每个键值对(key-value)都是由对象(object)组成的:数据库键总是一个字符串对象数据库的值则可以是字符串对象、列表对象、哈希对象、集合对象、有序集合对象这五种对象中的其中一种这篇博客要讨论的主要是这五种对象所使用的底层数据结构Redis底层数据结构有以下数据类型:简单动态字符串链表字典跳跃表整数集合压缩列表一、简单动态字符串Redis构建了一种名为简单动态字
转载
2023-09-21 09:10:16
73阅读
这一篇主要解析Redis的一些基本命令。 Redis的存储的六种数据结构String字符串类型List双向链表Hash散列Set集合ZSet有序集合HyperLogLog基数Redis数据结构—-字符串字符串是Redis最基本的数据结构,它将以一个键和一个值存储于Redis内部,犹如Java中的Map结构,通过Redis的键找到值。Redis字符串数据结构操作命令如下:1.set key
转载
2023-08-11 10:31:16
76阅读
对象在前面的数个章节里, 我们陆续介绍了 Redis 用到的所有主要数据结构, 比如简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合, 等等。Redis 并没有直接使用这些数据结构来实现键值对数据库, 而是 基于这些数据结构创建了一个对象系统 , 这个系统包含 字符串对象 、 列表对象 、 哈希对象 、&n
转载
2023-07-13 14:46:27
76阅读
Python 底层原理知识实际开发过程中,了解底层原理是有助于解决现实中遇到的问题的。现将了解到的几点重要的整理下,感谢原博主“吖水的程序路”的整理!1.Python是如何进行内存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制一、对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况:1,一个对象分配一个新名
转载
2023-08-30 11:24:14
94阅读
MySQL的内部组件结构:大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支
转载
2023-07-31 16:54:26
51阅读
ES 简介ES是一个使用java语言编写的并且基于Lucene编写的搜索引擎, 他提供了分布式的全文搜索服务, 还提供了一个RESTful风格的web接口, 官方还对多种语言提供了相应的APILuceneLucene 本身就是一个搜索引擎的底层,ES特点分布式: ES主要为了横向扩展能力全文检索: 将一段词语进行分词, 并且将分出的单个词语统一的放入一个分词库中,在搜索时,根据关键字去分词库中搜索
转载
2024-03-25 17:07:37
69阅读
1. 心得体会 最近在学习一些 Python 底层原理的干货知识,从 python 底层的 C 代码真的是了解到了很多东西。让我明白了 Python 是如何处理各种变量类型的,也明白了 Python 是如何管理变量的。在这个过程中我也在学习过程中想通了以前遇到的一些当时认为很奇葩的现象,如 del 掉一个变量后新建一个变量偶尔会发现新建的变量和
转载
2023-09-01 11:45:52
68阅读
文章目录数组与切片切片扩容函数传参MapMap底层数据结构key的访问map的遍历遍历的随机性遍历当中发生的扩容扩容扩容触发条件条件1-扩充条件2-压实接口底层结构ifaceeface接口类型是不是nil方法接收者Channel底层结构channel的发送策略channel的接收策略channel的关闭happend-before标准库ContextContext取消timerCtxreflec
转载
2023-09-05 23:15:26
155阅读
为什么大家经常听到python、java的底层是用c、c++实现的,却没有听过别人说js是用什么语言写的? java、python是用c、c++写的。为什么这么说,因为执行java的java虚拟机和执行python的python解析器都是用c、c++写的。而不是说.java文件和.py文件是用什么语言实现的。以python为例,.py文件只是开发人员编写的代码合集,这些只是python解释
转载
2023-06-06 17:47:18
239阅读
感觉平时面试的时候,经常被问到MySQL的底层数据结构。那么,Redis的底层原理是什么呢?Redis有很多种数据结构,每种数据结构的底层原理看起来很复杂,但是十分高效,本文对此进行总结!!! 1. 概述Redis存储是以键值对key-value的形式存储的,key是String类型的,而value的类型比较多,有String、Hash、List、Set、ZSet五种基本的类型,还有Bi
转载
2023-07-07 15:23:15
64阅读
前言最近看了相关的Redis设计核心相关的书籍,对Redis有了一些小的认识,然后自己也做一些产出加深映象,我会从几个方面去总结Redis设计的核心内容:Redis底层数据结构总结、Redis高性能由哪些基础支撑、Redis应用场景、那些有趣的功能。概述 本篇主要内容是Redis底层数据结构总结。Redis供用户直接使用的数据结构有String、List、Set、Zset、Hash等结构
转载
2023-09-10 17:12:30
51阅读
一、redisObject在redis中基本的结构对象我们称之为RedisObject,其源码如下:typedef struct redisObject {
unsigned type:4;
unsigned encoding:4;
unsigned lru:LRU_BITS;
int refcount;
void *ptr;
} robj;其中:type:表示值的数据类型。encoding:值的
转载
2023-06-21 22:27:02
356阅读
1,redis有五种基本数据结构:string、hash、set、zset、list;底层redis是通过c语言来实现这w五种结构的,具体是如何实现的,我们具体看一下。2,SDS "simple dynamic string",redis中所有场景中出现的字符串,基本都是由SDS来实现的。非数字的key、字符串值类型、非字符串数据类型种的字符串值都是SDS实现的。实现方式: free:还剩多少空间
转载
2023-08-16 09:13:10
62阅读
第一章:Python入门一、语言什么是语言:人与人之间的沟通计算机语言:计算机语言,即人和计算机之间的沟通语言。按照级别分类:机器语言:最底层,最低级的语言,只能识别0/1,电平信号汇编语言:计算机指令(add a-b, sub 2 1)高级语言: C、C++、Java、Python,偏向人的语言计算机语言的执行方式:编译执行:解释执行:Python,相当于翻译官(解释器IDE),好处---以跨
转载
2023-07-31 13:12:11
116阅读
首先需要了解的是,Unity3D的C#基础脚本模块是通过Mono来实现的。什么是Mono?参考下百度百科:Mono是一个由Novell公司(由Xamarin发起)主持的项目,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的Runtime,和一组类库,并实现了 ADO NET和ASP NET。它基于CIL和C#的
转载
2024-06-06 05:42:07
44阅读
Android系统架构Android 自上而下可以简单分为:Application应用层、Android Framework应用框架层、系统运行库层(包括Android运行时库)、以及Linux内核层: Application应用层:手机上所有的应用程序都属于这个层,我们平时Android应用开发也是在这个层,使用的开发语言是JavaAndroid Framework应用框架层:这一层主要提供了开
转载
2024-06-29 07:15:19
89阅读
首先,编程语言的分类:编程语言俗称“计算机语言”,种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。
机器语言(machine language)是一种
指令集的体系。这种指令集,称
机器码(machine code),是电脑的CPU可直接解读的数据。
机器码有时也被称为原生码(Native Code),这个名词比较强调某种
转载
2023-09-14 21:36:34
108阅读