背景 redis功能强大,几乎已经成了现代大中型服务必备的缓存技术了. 除了十分给力的缓存功能,redis当做消息队列,数据库也有着不错的表现. 我们都知道,redis 有五种数据类型,string,list, hash, set 和zset. 其中 最基本的,同时也是最常用的 就是string了. 本文就来谈谈 redis内部,string 的实现原理:SDS(simple dynamic string). redis简单动态字符窜:SDS 在redis里,C语言的字符窜只用来放字符串字面量,…
承接相关之前的SpringMVC的框架技术的流程分析 初始化流程(initStrategies) 执行流程 寻找相关HandlerMapping 请求到DispatcherServlet类进行执行相关的HandlerMapping集合,找到对应类型的HandlerMapping对象的实现类,如果是一般的采用注解(@RequestMapping)注入的实现类(RequestMappingHandlerMapping)类, HandlerMapping实现类之RequestMappingHandle…
本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> 本文我们继续学习redis的高级特性——集群.本文主要内容包括集群搭建.集群分区原理和集群操作的学习. Redis集群简介 Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)机制(本文将不做介绍,大家可另行查阅)来监控各个节点之间的状态.Redi…
before C语言基础 Redis基础 导入 redis的命令如下: set x "hello"; get x; hello Redis作为一种存储字符串的缓存结构,其具体实现是由C语言完成,在C语言中,字符串是通过字符数组实现的,即char[],那么Redis对于字符串的实现是不是也是基于字符数组吗?不是的,Redis对字符串的处理是通过SDS(Simple Dynamic String)实现的. SDS介绍 SDS(Simple Dynamic String)简单动态字符串,它是…
Redis是一个键值对数据库(key-value DB),下面是一个简单的Redis的命令: > SET msg "hello wolrd" 该命令将键"msg".值"hello wolrd"这两个字符串保存到Redis数据库中. 本章分析Redis如何在内存中保存这些字符串. redisObject Redis中的数据对象server.h/redisObject是Redis对内部存储的数据定义的抽象类型,在深入分析Redis数据类型前,我…
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用(主从.事务与锁.持久化)> <redis高级应用(集群搭建.集群分区原理.集群操作> 本文我们继续学习redis与spring的整合,整合之后就可以用redisStringTemplate的setNX()和delete()方法实现分布式锁了. Redis与spring的整合 相关…
本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜像栈顶部加一个读写层: 如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件版本仍然存在,只是已经被读写层中该文件的副本所隐藏,此即“写时复制(COW)”机制. (2)示意图 描述:如果一个文件在最底层是可见的,如果在layer1上标记为删除,最高的层…
# -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略.假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合.当集合 key 不是集合类型时,返回一个错误. ",1) #输出的结果是1 ",2) #输出的结果是1 ",2) #因为2已经存在,不能再次田间,所以输出的结果是0 ",3,4) #输…
Redis数据类型 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String.List.Hash.Set和Sorted Set. Redis数据类型内存结构分析 Redis内部使用一个redisObject对象来表示所有的key和value.redisObject主要的信息包括数据类型(type).编码方式(encoding).数据指针(ptr).虚拟内存(vm)等.type代表一个value对象具体是何种数…
前言 ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我们才能在生命周期的合适阶段编写代码.如果我们能在写代码的时候想着我们现在是在做生命周期的哪一步那将是非常好的. 你可能会说我不清楚还不是一样写代码,反正每次都在Page_load里面写代码 然后页面就出来了我管那么多干什么.所谓知其然如果能知其所以然岂不是更吊?我个人认为做ASP.NET B/S开发…