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

织梦网站产品图书馆网站设计方案

织梦网站产品,图书馆网站设计方案,中小型网站站内搜索实现,旅游网站建站部分开发人员工作当中只是在应用中使用redis#xff0c;比如用来做数据结果的缓存。而且现在有很多不错的redis客户端工具(redisson)#xff0c;基本上可以不用关注redis命令就可以完成相当部分的功能。所以可能会对如下这些问题关注点不够#xff1a; 如何容灾#xff1f;… 部分开发人员工作当中只是在应用中使用redis比如用来做数据结果的缓存。而且现在有很多不错的redis客户端工具(redisson)基本上可以不用关注redis命令就可以完成相当部分的功能。所以可能会对如下这些问题关注点不够 如何容灾即某个redis节点出了问题如何保证服务的高可用性如何横向扩容当数据量特别大时如何解决单个redis的性能问题集群至少需要几台机器或者几个redis节点集群搭建都利用什么技术哪些工具 如何容灾 redis提供了主从热备机制主服务器的数据同步到从服务器通过哨兵实时监控主服务器状态并负责选举主服务器。当发现主服务器异常时根据一定的算法重新选举主服务器并将问题服务器从可用列表中去除最后通知客户端。主从是一对多的树型结构如下图 哨兵 哨兵是sentinel的中文名称是redis出的一个高可用架构的工具自身是一个独立的进程可以同时监控一个以上的redis集群。 哨兵集群 基于高可用的考虑哨兵自身也是需要支持集群的如果只有一个哨兵就会存在单点问题。 哨兵决策 哨兵有一个数量配置当多少个哨兵同时认为某个主服务不可用时才进行主从切换比如总共有5个哨兵当3个哨兵认为服务不可用时才决定做主从切换。这么做可以避免一些误切换降低切换成本比如瞬时的网络异常等。 如何横向扩容 无论是redis还是其它一些数据库之类的产品当单节点的数据容量达到一定上限后服务对外提供的能力会越来越弱。redis在高版本中提供了redis-trib.rb来实现集群功能也可以使用第三方的工具twemproxy。 去中心化每个节点都是平等的 redis集群从设计上没有考虑中心化这样可以避免中心节点的单点等问题。每个节点都能掌握整个集群的状态连接任意的节点都可以访问到所有的key就像单节点的redis一样。 集群原理图 自己理解画的如有理解不对的地方可以指出。 key与redis节点的关系 引入了hasy solt中文理解为哈希槽。总共16384个我们操作的key通过取模算法确认key落在哪个槽上。 HASH_SLOT CRC16(key) mod 16384 哈希槽与节点之间有一定关系所以我们就可以将key分配到某个具体的redis节点上了。 详细的关系可再研究简单的比如节点A负责0-5000编号的哈希槽节点B负责5001-1000 一步一步搭建 开始搭建三主三从的集群系统是ubuntu采用redis提供的集群工具redis-trib.rb。 安装最新redis创建redis_cluster目录并且创建7000到7005这6个目录将redis目录下的redis.conf复制到上面创建的6个目录中分别修改redis.conf文件,对6个文件做类似的修改。 port 7000 //端口7000 bind 127.0.0.1 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip daemonize yes //后台运行 pidfile /var/run/redis_7000.pid //pidfile文件对应7000 cluster-enabled yes //开启集群 cluster-config-file nodes_7000.conf //集群的配置 cluster-node-timeout 15000 //请求超时 默认15秒可自行设置 bind需要注意的就是需要配置为其它机器可以访问的ip否则无论是创建集群还是客户端连接都会有问题。 启动6个redis redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf 创建集群 redis的src目录下有个redis-trib.rb将它复制到/usr/local/bin中然后执行如下脚本 redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --replicas后面的1代表从服务器的个数上面可以理解为前面3个为主服务器后面三个分别做为从服务器即三对主从。 执行过程中会遇到提示需要安装ruby安装完成之后又会提示安装 gem redis。 安装gem redis折腾了好久最终发现是因为在国内访问不了某些网站导致通过apt-get install安装不成功最后通过下载源码的方式安装成功。 再次执行创建集群的脚本,出现如下提示 输入yes继续 最少需要多少个主服务器 可能是基于某些约定集群约定只有当可用节点数大于半数以上时才具备对外提供服务的能力。首先数量一定是奇数其实必须大于1所以最少的主服务器数量为3。 测试集群 连接客户端由于我的所有节点都是在本地所以不需要输入ip但需要加-c的参数。 redis-cli -c -p 7000 连接成功后增加一个key set mykey 123 有一行提示语指向到端口7002这说明虽然我们连接的是7000的实例但通过hash算法最终会将key分配到7002的实例上。 再连接7005端口查询下key测试下是否任意一个实例都可以查询到key get mykey 显示指向到端口7002 集群需要注意的地方 这块还未仔细研究有些命令在集群下是不支持的待后续求证。 引用 http://www.cnblogs.com/wuxl360/p/5920330.htmlhttps://segmentfault.com/a/1190000002680804http://blog.csdn.net/lifeiaidajia/article/details/45370377 总结 真实环境的部署与单机部署还是差异比较大的但也不复杂尽管部分开发人员可能一辈子都不会有机会在线上搭建redis集群但了解redis的高可用可扩展的方案对设计大型系统还是有比较大的帮助的也有助于分析解决线上问题。看了上面的这些对于本文开头提到的问题就不难理解了。 相关文章  Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件用Docker构建分布式Redis集群推荐–个通用缓存接口抽象类库CacheManagerC#使用Redis集群缓存StackExchange.Redis客户端读写主从配置以及哨兵配置怎样在Redis通过StackExchange.Redis 存储集合类型List 原文地址http://www.cnblogs.com/ASPNET2008/p/6400674.html.NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.zqtcl.cn/news/226271/

相关文章:

  • 芜湖的网站建设韩国封号事件网站建设
  • 做外贸网站的价格wordpress远方的雪
  • 有哪些做应援的网站网站开发产生费用分录怎么写
  • 如何在微信平台做购买网站广安 网站建设
  • 怎么建立和设计网站html5高端酒水饮料企业网站模版
  • 网站排版尺寸wordpress 生成目录
  • 网站建设属于什么费用wordpress破解管理员帐号
  • 东莞市官网网站建设专业wordpress主题开发
  • 常熟做网站优化合肥百度竞价推广代理公司
  • 专业做招聘的网站人气最旺的传奇手游
  • 西安网站建设新闻柳市专业网站托管
  • 网站怎么做移动端织梦网暂时关闭网站
  • 上海响应式网站建设企业seo 优化是什么
  • pc主页网站建设专业公司网站建设服务公司
  • js 取网站域名做服装团购有哪些网站有哪些
  • ysl网站设计论文网站快照回档
  • 网站建设成本计划汕头网站开发服务
  • 云朵课堂网站开发怎么收费wordpress安装完不显示
  • 网站建设进什么分录wordpress5.0 安装
  • 网站建设丷金手指专业十五户县规划建设和住房保障局网站
  • 普通门户网站开发价格怎么查公司信息
  • 广告传媒公司网站怎么做高品质的网站开发公司
  • 建设品牌型网站制作一起做玩具网站
  • 中山品牌网站设计自建站怎么做
  • 最牛免费网站建设wordpress 相册功能
  • 网站开发是培训网站开发毕业设计评审表
  • 网站对网友发帖隐私做处理网站怎么上传模板
  • 网站建设大神级公司网站 百度地图
  • 网站营销定义高端网站建设免费分析
  • 韩国网站建站html5修改器下载