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

网站的数据库选择电子商务网站栏目

网站的数据库选择,电子商务网站栏目,临沂网站建设举措,网站建设流量入口一、Redis单机安装 1、安装gcc依赖 Redis是C语言编写的#xff0c;编译需要GCC。 Redis6.x.x版本支持了多线程#xff0c;需要gcc的版本大于4.9#xff0c;但是CentOS7的默认版本是4.8.5。 升级gcc版本#xff1a; yum -y install centos-release-scl yum -y install d…一、Redis单机安装 1、安装gcc依赖 Redis是C语言编写的编译需要GCC。 Redis6.x.x版本支持了多线程需要gcc的版本大于4.9但是CentOS7的默认版本是4.8.5。 升级gcc版本 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c devtoolset-9-binutils scl enable devtoolset-9 bash echo source /opt/rh/devtoolset-9/enable /etc/profile确认gcc的版本在同一个窗口中 gcc -v2、下载解压文件 下载地址https://redis.io/download/#redis-downloads 解压文件 [rootlocalhost src]# tar -xzf redis-6.0.16.tar.gz2、修改redis.config文件 daemonize yes //更改为后台启动#bind 127.0.0.1 //注释protected-mode no //允许外部网络直接访问4、启动redis 如果src没有redis-server在redis目录执行make指令 [rootlocalhost src]# ./redis-server ../redis.conf //启动服务 [rootlocalhost src]# ./redis-cli //进入客户端二、Redis主从安装 1、修改redis.config文件 daemonize yes //更改为后台启动 #bind 127.0.0.1 //注释 protected-mode no //允许外部网络直接访问 replicaof 192.168.8.129 6379 //添加是哪台机器的从节点 主节点IP 主节点端口2、启动redis 如果src没有redis-server在redis目录执行make指令 [rootlocalhost src]# ./redis-server ../redis.conf //启动服务 [rootlocalhost src]# ./redis-cli //进入客户端查看是否配置了主节点配置 127.0.0.1:6379 config get replicaof1) replicaof2) 192.168.8.129 6379查看从节点信息 127.0.0.1:6379 info replication # Replication role:slave //角色master_host:192.168.8.129 //主节点IPmaster_port:6379 //主节点端口master_link_status:up //连接状态 up是正常同步连接状态 down表 示复制端口master_last_io_seconds_ago:1 //主库多少秒没有发送数据到从库 0- 10master_sync_in_progress:0 //是否正在跟主服务同步slave_repl_offset:163 //从节点偏移量slave_priority:100 //选举时成为主节点的优先级 越大优先级越高 0 不会成为主节点slave_read_only:1 //是否为只读从库connected_slaves:0 //连接的从库实例master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //master启动时生成的40位16进制的随机字符串用来标识master节点master_replid2:0000000000000000000000000000000000000000 //slave切换master之后会生成了自己的master标识之前的master节 点的标识存到了master_replid2的位置master_repl_offset:163 //已写入偏移量second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576 //复制积压的缓存区大小repl_backlog_first_byte_offset:1repl_backlog_histlen:1633、查看主节点信息 127.0.0.1:6379 info replication # Replication role:master //角色connected_slaves:1 //从节点数量slave0:ip192.168.8.127,port6379,stateonline,offset7889 9,lag1 //从节点的信息 状态 偏移量master_replid:04f4969ab63ce124e870fa1e4920942a5b3448e7 //# master启动时生成的40位16进制的随机字符串用来标识master节点master_replid2:0000000000000000000000000000000000000000master_repl_offset:78899 //mater已写入的偏移量second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576 //缓冲区大小repl_backlog_first_byte_offset:1repl_backlog_histlen:78899 //缓冲区的数据已有大小是个环形跟RedoLog一样会覆盖4、运行时变成主的从库 解除主从关系 127.0.0.1:6379 slaveof no one OK添加从节点 127.0.0.1:6379 slaveof 192.168.8.129 6379OK三、 Redis哨兵安装 1、修改sentinel.cfg文件 配置文件跟redis.cfg一个路径都在redis根目录如果要监控多套主服务配置多个即可 port 26379 //sentinel服务端口 daemonize yes //是否后台启动 //sentinel monitor master-group-name ip port quorum sentinel monitor mymaster 192.168.8.129 6379 2 //mymaster主服务的名称 192.168.8.129 6379 master的ip与端口 quornum 认为master不可用的sentinel数量 sentinel down-after-milliseconds mymaster 30000 //30s后联系不到 认为关闭 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 1800002、启动sentinel服务 [rootlocalhost src]# ./redis-sentinel ../sentinel.conf //启动sentinel服务3、连接sentinel服务 [rootlocalhost src]# ./redis-cli -p 26379 127.0.0.1:263794、查看master的信息 127.0.0.1:26379 sentinel master mymaster //mymaster为自定义的名称1) name2) mymaster3) ip4) 192.168.8.1295) port6) 63797) runid 8) 75fb165dd59b82d1154d11939a0b9a45211bf68a9) flags 10) master 11) link-pending-commands 12) 0 13) link-refcount 14) 1 15) last-ping-sent 16) 0 17) last-ok-ping-reply 18) 256 19) last-ping-reply 20) 256 21) down-after-milliseconds 22) 30000 23) info-refresh 24) 5553 25) role-reported 26) master 27) role-reported-time 28) 156216 29) config-epoch 30) 0 31) num-slaves //从节点数量 32) 2 33) num-other-sentinels //其他的哨兵数量 34) 2 35) quorum 36) 2 37) failover-timeout 38) 180000 39) parallel-syncs 40) 15、sentinel查询主库地址 1.连接sentinel客户端 [rootlocalhost src]# ./redis-cli -p 263792.查询主库地址 127.0.0.1:26379 sentinel get-master-addr-by-name mymaster 1) 192.168.8.128 2) 63796、sentinel主要指令 该SENTINEL命令是 Sentinel 的主要 API。以下是其子命令的列表在适用的情况下注明了最小版本 SENTINEL CONFIG GET ( 6.2 ) 获取全局 Sentinel 配置参数的当前值。指定的名称可以是通配符类似于 Redis CONFIG GET 命令。SENTINEL CONFIG SET ( 6.2 ) 设置全局Sentinel 配置参数的值。SENTINEL CKQUORUM 检查当前的 Sentinel 配置是否能够达到故障转移主服务器所需的法定人数以及授权故障转移所需的多数。此命令应用于监控系统以检查 Sentinel 部署是否正常。SENTINEL FLUSHCONFIG强制 Sentinel 在磁盘上重写其配置包括当前 Sentinel 状态。通常Sentinel 会在每次状态发生变化时重写配置在重启后保留在磁盘上的状态子集的上下文中。然而有时配置文件可能会因为操作错误、磁盘故障、软件包升级脚本或配置管理器而丢失。在这些情况下强制 Sentinel 重写配置文件的方法很方便。即使先前的配置文件完全丢失此命令也有效。SENTINEL FAILOVER 强制进行故障转移就好像主服务器不可访问一样并且无需征求其他 Sentinel 的同意但是将发布新版本的配置以便其他 Sentinel 更新其配置。SENTINEL GET-MASTER-ADDR-BY-NAME 返回具有该名称的主机的 ip 和端口号。如果此主服务器正在进行故障转移或成功终止它将返回提升副本的地址和端口。SENTINEL INFO-CACHE ( )从主服务器和副本服务器 3.2 返回缓存的输出。INFOSENTINEL IS-MASTER-DOWN-BY-ADDR从当前 Sentinel 的角度检查ip:port 指定的主服务器是否已关闭。该命令主要供内部使用。SENTINEL MASTER 显示指定主站的状态和信息。SENTINEL MASTERS显示受监控的主控列表及其状态。SENTINEL MONITOR启动 Sentinel 的监控。有关详细信息请参阅运行时重新配置 Sentinel部分。SENTINEL MYID ( 6.2 ) 返回 Sentinel 实例的 ID。SENTINEL PENDING-SCRIPTS此命令返回有关未决脚本的信息。SENTINEL REMOVE停止 Sentinel 的监控。有关详细信息请参阅在运行时重新配置 Sentinel部分。SENTINEL REPLICAS ( 5.0 ) 显示此主服务器的副本列表及其状态。SENTINEL SENTINELS 显示该 master 的哨兵实例列表及其状态。SENTINEL SET设置 Sentinel 的监控配置。有关详细信息请参阅在运行时重新配置 Sentinel部分。SENTINEL SIMULATE-FAILURE (crash-after-election|crashafter-promotion|help)( 3.2 ) 此命令模拟不同的 Sentinel 崩溃场景。SENTINEL RESET 此命令将重置所有具有匹配名称的主机。模式参数是一个全局样式的模式。重置过程会清除 master 中的任何先前状态包括正在进行的故障转移并删除已发现并与 master关联的每个副本和哨兵。 7、出于连接管理和管理目的Sentinel 支持以下 Redis 命令子集 ACL ( 6.2 ) 此命令管理 Sentinel 访问控制列表。有关详细信息请参阅ACL文档页面和Sentinel 访问控制列表身份验证。AUTH ( 5.0.1 ) 验证客户端连接。有关详细信息请参阅AUTH命令和使用身份验证配置 Sentinel 实例部分。CLIENT此命令管理客户端连接。有关更多信息请参阅其子命令页面。COMMAND ( 6.2 ) 此命令返回有关命令的信息。有关详细信息请参阅该COMMAND命令及其各种子命令。HELLO ( 6.0 ) 切换连接的协议。有关详细信息请参阅HELLO命令。INFO返回有关 Sentinel 服务器的信息和统计信息。有关更多信息请参阅INFO命令。PING这个命令只返回 PONG。ROLE此命令返回字符串“sentinel”和受监控的主机列表。有关详细信 息请参阅ROLE命令。SHUTDOWN关闭 Sentinel 实例。 8、模拟主服务器挂掉 模拟主服务器关闭 192.168.8.129 [rootlocalhost src]# ./redis-cli 127.0.0.1:6379 info replication // 查看 # Replication role:master connected_slaves:2 slave0:ip192.168.8.127,port6379,stateonline,offset232310,lag0 slave1:ip192.168.8.128,port6379,stateonline,offset232310,lag1master_replid:d1274cc57aa3a2f1fed3068a429b972d6268453d master_replid2:0000000000000000000000000000000000000000 master_repl_offset:232310 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:232310 127.0.0.1:6379 shutdown //执行服务关闭我们再查看另外的2个实例的信息由于切换需要时间所以不会马上变更192.168.8.128的信息我们发现128升级为主了。 127.0.0.1:6379 info replication # Replication role:master connected_slaves:1 slave0:ip192.168.8.127,port6379,stateonline,offset278214,lag1 master_replid:b32f0f1140789e7d0e30c88e717730cbd93dd3d8 master_replid2:d1274cc57aa3a2f1fed3068a429b972d6268453d master_repl_offset:278355 second_repl_offset:233876 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:278355192.168.8.127的信息我们发现127变成了128的主 127.0.0.1:6379 info replication # Replication role:slave master_host:192.168.8.128 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_repl_offset:274802 slave_priority:100 slave_read_only:0 connected_slaves:0 master_replid:b32f0f1140789e7d0e30c88e717730cbd93dd3d8 master_replid2:d1274cc57aa3a2f1fed3068a429b972d6268453d master_repl_offset:274802 second_repl_offset:233876 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:274802我们基于Sentinel就能实现主从的自动切换。 四、RedisCluster集群安装 1、安装 RedisCluster至少得三主三从 6个节点 6节点分别以127、128、129 3台机器的 6380、6381端口 2、复制原有安装文件,把原有文件改成6380 cp -r redis-6.0.16 redis-6.0.16-6381 mv redis-6.0.16 redis-6.0.16-63803、更改redis.config配置文件 #bind 127.0.0.1 protected-mode no daemonize yes cluster-enabled yes 开启集群 cluster-config-file nodes-6380.conf //不同的端口实例不同 比如6381就是nodes-6381.conf pidfile /var/run/redis_6380.pid //不同的端口实例不同 比如6381就是redis_6381.pid4、开启Cluster集群 [rootlocalhost src]# ./redis-cli --cluster create 192.168.8.129:6380 192.168.8.129:6381 192.168.8.128:6381 192.168.8.128:6380 192.168.8.127:6380 192.168.8.127:6381 --cluster-replicas 1如果报非空删除相关节点的数据以及cluster-config-file配置的文件 5、查看集群信息 127.0.0.1:6380 cluster nodes ed1d6852839ea0f4eccb3231d9230a701a079783 192.168.8.129:638016380 myself,master - 0 1657818165000 1 connected 0-5460 e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 192.168.8.128:638116381 master - 0 1657818166000 3 connected 5461-10922 f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 192.168.8.127:638116381 slave e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657818165784 3 connected 8df23b5a556a32c4b65d228250f6cbddb18bfaf4 192.168.8.128:638016380 slave ed1d6852839ea0f4eccb3231d9230a701a079783 0 1657818166788 1 connecte abe5ae19378385e1c8f9fb7c93a702343947e216 192.168.8.127:638016380 master - 0 1657818162000 5 connected 10923-1638 4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 192.168.8.129:638116381 slave abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657818167791 5 connected6、模拟服务器宕机 模拟129的6380宕机我们发现129:6380的slave 128:6380自动升为 主。 127.0.0.1:6380 cluster nodes 4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 192.168.8.129:638116381 slave abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657819837000 5 connecte abe5ae19378385e1c8f9fb7c93a702343947e216 192.168.8.127:638016380 master - 0 1657819833000 5 connected 10923-16383 f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 192.168.8.127:638116381 slave e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657819836183 3 connecte ed1d6852839ea0f4eccb3231d9230a701a079783 192.168.8.129:638016380 master,fail - 1657819132867 1657819129000 1 disconnected 8df23b5a556a32c4b65d228250f6cbddb18bfaf4 192.168.8.128:638016380 myself,master - 0 1657819835000 7 connected 0-5460 e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 192.168.8.128:638116381 master - 0 1657819837187 3 connected 5461-10922所以cluster可以进行自动故障转移 7、添加节点(集群扩容) 我现在添加一个节点 192.168.8.137:6380实例我希望加到cluster集群 在随便现有的clusternode节点中执行 第一个参数是要添加的节点第二个参数为已有的cluster集群随机一个节 点 ./redis-cli --cluster add-node 192.168.8.137:6380 192.168.8.128:63808、查看nodes节点 127.0.0.1:6381 cluster nodes e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 192.168.8.128:638116381 myself,master - 0 1657903080000 3 connected 5461-10922 abe5ae19378385e1c8f9fb7c93a702343947e216 192.168.8.127:638016380 master - 0 1657903081336 5 connected 10923-1638 4d0fcb91f0afa7eaf6cba415249fe6f8baa4c2e8 192.168.8.129:638116381 slave abe5ae19378385e1c8f9fb7c93a702343947e216 0 1657903081000 5 connected 8df23b5a556a32c4b65d228250f6cbddb18bfaf4 192.168.8.128:638016380 master - 0 1657903082000 7 connected 0-5460 f639ac4eee5d79f82e27d7a5b038eeff9d6a4ca8 192.168.8.127:638116381 slave e1b44fb5617b3c835238ca8a9bdbc86aa2dcec72 0 1657903079000 3 connected 143bb59351740be6087766df8af135d22679c7f9 192.168.8.137:638016380 master - 0 1657903082339 0 connecte ed1d6852839ea0f4eccb3231d9230a701a079783 192.168.8.129:638016380 slave 8df23b5a556a32c4b65d228250f6cbddb18bfaf4 0 1657903080333 7 connected我们发现137的6380节点已经到了cluster集群。但是是没有分配虚拟槽的所以要进行槽的分配 9、Cluster其他指令 官网地址https://redis.io/commands/?groupcluster集群相关命令需要进入客户端 cluster info 打印集群的信息cluster nodes 列出集群当前已知的所有节点node以及这些节点的相关信息。cluster meet 将 ip 和 port 所指定的节点添加到集群当中让它成为集群的一份子。cluster forget node_id 从集群中移除 node_id 指定的节点(保证空槽道)。cluster replicate node_id 将当前节点设置为 node_id 指定的节点的从节点。cluster saveconfig 将节点的配置文件保存到硬盘里面。 10、槽slot命令 cluster addslots [slot …] 将一个或多个槽slot指派assign给当前节点。cluster delslots [slot …] 移除一个或多个槽对当前节点的指派。cluster flushslots 移除指派给当前节点的所有槽让当前节点变成一个没有指派任何槽的节点。cluster setslot node node_id 将槽 slot 指派给 node_id 指定的节点如果槽已经指派给另一个节点那么先让另一个节点删除该槽然后再进行指派。cluster setslot migrating node_id 将本节点的槽 slot 迁移到 node_id 指定的节点中。cluster setslot importing node_id 从 node_id 指定的节点中导入槽 slot 到本节点。cluster setslot stable 取消对槽 slot 的导入import或者迁移migrate。 11、键命令 cluster keyslot 计算键 key 应该被放置在哪个槽上。cluster countkeysinslot 返回槽 slot 目前包含的键值对数量。cluster getkeysinslot 返回 count 个 slot 槽中的键 12、数据迁移 12.1 扩容 扩容添加新节点过程中数据迁移的主要步骤包含以下几个部分 12.1.1、启动新节点 启动新的 Redis 实例作为集群的节点 redis-cli --cluster add-node 127.0.0.1:6380 127.0.0.1:637912.1.2、将新节点加入集群 使用 redis-cli 命令将新的节点加入现有集群 redis-cli --cluster add-node 127.0.0.1:6380 127.0.0.1:6379 12.1.3、重新分配槽resharding 使用 redis-cli 工具重新分配哈希槽这会触发槽和数据的迁移 redis-cli --cluster reshard 127.0.0.1:6379交互过程中指定将一定数量的哈希槽从现有节点迁移到新节点。 12.1.4、迁移数据 redis-cli 自动处理哈希槽的迁移并在后台进行数据的移动。此迁移是渐进式的不会中断服务。 12.2 缩容 缩容移除节点过程中数据迁移的主要步骤包含以下几个部分 12.2.1、触发哈希槽转移 首先确定需要移除的节点ID获取节点信息 redis-cli --cluster nodes 127.0.0.1:637912.2.2、移动哈希槽到其他节点 使用 redis-cli 工具将指定节点的槽迁移到其他节点 redis-cli --cluster reshard 127.0.0.1:6379 --slots SLOT_NUMBER --from NODE_ID_TO_REMOVE --to TARGET_NODE_ID12.2.3、关闭并移除节点 当所有哈希槽和数据迁移完成后安全地关闭并移除节点 redis-cli --cluster del-node 127.0.0.1:6379 NODE_ID_TO_REMOVE
http://www.hkea.cn/news/14448623/

相关文章:

  • 阿里云认证网站建设题库公司年会活动方案策划
  • 在线学做网站如何创作个人网站
  • 建设网站的五个步骤网站开发支持环境
  • 网站优化具体怎么做四川建筑职业技术学院就业网
  • 台州市住房和城乡建设规划局网站制作网页时一般使用什么对网页进行布局
  • 新广告法 做网站的搭建网络环境
  • 刷单网站开发河源东源新闻最新消息
  • wordpress忘记密码seo公司网站推广
  • 长沙亿仁网络科技有限公司做seo推广公司网站
  • 湖北省建设工程网站一站式免费建站平台
  • 重庆网站备案流程手机端网页怎么开发
  • 东莞加盟网站建设网站搭建制作
  • 网站排名怎么弄设计app的软件有哪些
  • 沃航科技网站开发东莞网站搭建建站公司
  • 网站备案和实名认证做电子商务网站 费用
  • c2c电商网站有哪些什么网站可以做字体效果图
  • python 网站开发 saephp企业网站开发好学么
  • 某网站开发项目成本估计免费网站在哪里申请表
  • 爱网站无法登录怎么回事口碑好的企业网站建设
  • 一个主机放几个网站深圳效果图公司排名
  • 徐州优化网站建设福州闽侯网站建设
  • 企业网站的优点和缺点爱站网ip反查域名
  • 北京企业网站seo平台静态做网站
  • 中英文网站系统国外做网站被动收入
  • 沈阳做网站的地方网站设计欣赏中国
  • 购买网站建设合同协议模板菏泽建设
  • 潮州住房和城乡建设局网站专业国外网站建设
  • 传奇网站模板使用怎么用手机黑网站
  • 建筑资质证书查询网站软件下载页面制作
  • 网站的推广策略搜索软件使用排名