redis生产问题,redis分析

  redis生产问题,redis分析

  二。建筑设计2.1。相关命令:scache.create:新建一条缓存信息,缓存通过指定的mysql地址信息维护一条与mysql的连接信息;Scache.list:遍历所有创建的缓存信息(返回缓存信息标记);Scache.info:获取指定的缓存信息(缓存信息存储在链表中,数据量大时访问可能会有性能瓶颈);

  Scache.test:验证特定缓存信息与mysql的连接是否ok(缓存信息存储在链表中,有大量数据时访问可能出现性能瓶颈);

  Scache.flush:暂时不支持;

  Scache.delete:删除指定的缓存信息,断开与mysql的连接;

  Scache.getvalue:从缓存中获取相应的值;

  Scache.getmeta:从缓存中获取对应值的属性;

  2.2.数据结构

  //缓存对象的结构

  typedef结构CacheDetails_s {

  char * cachename//设置的缓存名称是独立的缓存标识符。

  uint16 _ t ttl//值过期前的默认生存期(秒)

  char * dbhost//数据库服务器的主机IP地址或DNS名称

  uint16 _ t dbport//port数据库服务器的TCP端口(通常为3306)

  char * dbname//需要连接的数据库的名称

  char * dbuser//连接到数据库的用户的登录名

  char * dbpass//Password连接到数据库的密码

  MYSQL * dbhandle//连接mysql的句柄

  struct CacheDetails _ s * next//记录下一个缓存的对象

  } CacheDetails三、数据缓存读取过程

  3.1.数据缓存过程

  相关函数:SCachePopulate,主要过程如下:

  向对应的mysql发送查询命令(调用mysql_query接口),接受返回的结果(异常直接返回);

  两个缓存信息键,cachename:query:meta和cache name:query:value;

  解析mysql的返回值并将数据存储在两个键中:

  将返回结果的每个字段及其属性存储在cache name:Query:Meta:

  RPUSH cache name:query:meta name type

  nametype将返回结果的每一行数据依次存储在cachename:query:value中:

  相关命令:r push cache name:query:value field 1 field 2 field 3;

  的数据格式:即field1field2field3的内容是由mysql返回的一行中每一列的数据拼接而成的字符串,分隔符为;

  3.2.数据读取过程

  Scache.getvalue执行流程:

  拼接特殊键,格式为:cachename:query:value(其中cachename和query是命令中传递的参数);

  在本地数据库中执行l range cache name:query:value 0-1获取所有数据;

  如果数据为空,则调用SCachePopulate函数填充数据,然后再次执行L Range cache name:query:value 0-1获取数据;

  最后的数据是field1field2field3数据的数组(类似于sql指令的多行返回值);

  Scache.getmeta执行过程:

  拼接特殊键,格式为:cachename:query:meta(其中cachename和query是命令中传递的参数);

  在本地数据库中执行lrange cache name:query:meta 0-1以获取所有数据;

  如果数据为空,则调用SCachePopulate函数填充数据,然后再次执行L Range cache name:Query:meta 0-1获取数据;

  最后的数据是nametype数据的数组(类似于sql指令返回值对应的每一列的属性信息);

  四。问题和想法

  4.1.问题

  SCacheCreate_ThreadMain

  scache.flush

  版权归作者所有:原创作品来自博主小二上九8,转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • redis队列操作命令,redis 循环队列
  • redis队列操作命令,redis 循环队列,redis实现简单队列
  • redis部署应用服务器上,redis如何启动服务器
  • redis部署应用服务器上,redis如何启动服务器,搭建Redis服务器步骤详细介绍
  • redis缓存穿透和击穿解决方案,redis缓存穿透,缓存雪崩解决
  • redis缓存穿透和击穿解决方案,redis缓存穿透,缓存雪崩解决,redis缓存穿透解决方法
  • Redis缓存,redis和缓存
  • Redis缓存,redis和缓存,Redis缓存详解
  • redis的配置,启动,操作和关闭方法有哪些,关闭redis的命令,Redis的配置、启动、操作和关闭方法
  • redis的主从配置方法详解图,Redis主从配置
  • redis的主从配置方法详解图,Redis主从配置,redis的主从配置方法详解
  • redis界面工具,mac安装redis可视化工具
  • redis界面工具,mac安装redis可视化工具,推荐几款 Redis 可视化工具(太厉害了)
  • redis正确使用的十个技巧是什么,redis正确使用的十个技巧有哪些
  • 留言与评论(共有 条评论)
       
    验证码: