当前位置: 首页 > news >正文

童装东莞网站建设技术支持黄岛建设局网站

童装东莞网站建设技术支持,黄岛建设局网站,东莞做网站微信巴巴,企业vi手册文章目录数据库的实现数据库读写操作键的过期实现数据库的实现 我们先看代码 server.h/redisServer struct redisServer{...//保存 db 的数组redisDb *db;//db 的数量int dbnum;... }再看redisDb的代码#xff1a; typedef struct redisDb {dict *dict; /*… 文章目录数据库的实现数据库读写操作键的过期实现数据库的实现 我们先看代码 server.h/redisServer struct redisServer{...//保存 db 的数组redisDb *db;//db 的数量int dbnum;... }再看redisDb的代码 typedef struct redisDb {dict *dict; /* The keyspace for this DB */dict *expires; /* Timeout of keys with a timeout set */dict *blocking_keys; /* Keys with clients waiting for data (BLPOP)*/dict *ready_keys; /* Blocked keys that received a PUSH */dict *watched_keys; /* WATCHED keys for MULTI/EXEC CAS */int id; /* Database ID */long long avg_ttl; /* Average TTL, just for stats */ } redisDb;总体来说redis的 server 包含若干个默认16个 redisDb 数据库。 Redis 是一个 k-v 存储的键值对数据库。其中字典 dict 保存了数据库中的所有键值对这个地方叫做 keyspace 直译过来就是“键空间”。 所以我们就可以这么认为在 redisDb 中我们使用 dict字典来维护键空间。 keyspace 的 key 是数据库的 key每一个key 是一个字符串对象。注意不是字符串而是字符串对象。 keyspace 的 value 是数据库的 value这个 value 可以是 redis 的字符串对象列表对象哈希表对象集合对象或者有序对象中的一种。 数据库读写操作 所以对于数据的增删改查就是对 keyspace 这个大 map 的增删改查。 当我们执行 redis SET mobile 13800000000 实际上就是为 keyspace 增加了一个 key 是包含字符串“mobile”的字符串对象value 为包含字符“13800000000”的字符串对象。 看图 对于删改查没啥好说的。类似java 的 map 操作大多数程序员应该都能理解。 需要特别注意的是再执行对键的读写操作的时候Redis 还要做一些额外的维护动作 维护 hit 和 miss 两个计数器。用于统计 Redis 的缓存命中率。更新键的 LRU 时间记录键的最后活跃时间。如果在读取的时候发现键已经过期Redis 先删除这个过期的键然后再执行余下操作。如果有客户对这个键执行了 WATCH 操作会把这个键标记为 dirty让事务注意到这个键已经被改过。没修改一次 dirty 会增加1。如果服务器开启了数据库通知功能键被修改之后会按照配置发送通知。 键的过期实现 Redis 作为缓存使用最主要的一个特性就是可以为键值对设置过期时间。 在 Redis 中与过期时间有关的命令 EXPIRE 设置 key 的存活时间单位秒EXPIREAT 设置 key 的过期时间点单位秒PEXPIRE 设置 key 的存活时间单位毫秒PEXPIREAT 设置 key 的过期时间点单位毫秒 其实这些命令底层的命令都是由 REXPIREAT 实现的。 在 redisDb 中使用了 dict *expires来存储过期时间的。其中 key 指向了 keyspace 中的 keyc 语言中的指针 value 是一个 long long 类型的时间戳标定这个 key 过期的时间点单位是毫秒。 如果我们为上文的 mobile 增加一个过期时间。 redis PEXPIREAT mobile 1521469812000 这个时候就会在过期的 字典中增加一个键值对。如下图 对于过期的判断逻辑就很简单 在 字典 expires 中 key 是否存在。如果 key 存在value 的时间戳是否小于当前系统时间戳。
http://www.yutouwan.com/news/273844/

相关文章:

  • 网站建设 pdf企业产品微网站收费吗
  • 网站怎么做数据库个人免费开店的网站
  • 东营网站建设专业定制网站统计模板
  • 网站建设与制作教程下载上海网络营销外包服务公司
  • 石家庄网站建设模板浙江建设网站是多少
  • 珠海左右创意园网站开发网站开发案例代码
  • 泰安网站seo推广有人模仿qq音乐做的h5网站吗
  • 广告联盟做网站联盟文明网站建设有新突破
  • 应税服务网站开发开票连云港企业建站 网站
  • 辽宁网站备案要多久360建站工具
  • 高唐网站建设简洁物流网站模板
  • 建设一个网站的基本步骤域名更换网站
  • 通用网址通用网站查询网站设计介绍怎么写
  • 深圳营销型网站建设公司选择哪家好php是做网站美工的吗
  • 360免费建站模板俄罗斯做电商网站
  • 网站模版 源码网页制作与网站建设初学者必看教程
  • 西安做网站公司怎么样pc网站建设和推广
  • 品牌网站建设哪好设计师网页设计
  • 建设公司网站需要多少钱1sose wordpress
  • 山东省住房城乡建设厅网站那个网站做h5不要钱
  • 做网站怎么对接国际收款商户网站上如何做电子手册
  • 国外建筑设计网站推荐外贸人常用的网站
  • 专业网站搭建运营网站开发什么语言
  • asp.net网站开发简介开发小程序用什么软件写代码
  • 12306铁路网站开发语言合肥网页设计工资一般多少
  • 免费个人微网站模板网页前端是什么工作
  • 最新网站开发价格建网站怎么分类
  • 网站建设1000字做老师好还是网站编辑好
  • 贵阳网站建设 网站制作百度域名注册官网
  • 做啊网站太原建设设计公司网站