Redis(无中心化集群搭建)
文章目录
- 1.无中心化集群
- 1.基本介绍
- 2.集群说明
- 2.基本环境搭建
- 1.部署规划(6台服务器)
- 2.首先删除上次的rdb和aof文件(对之前的三台服务器都操作)
- 1.首先分别登录命令行,关闭redis
- 2.清除/root/下的rdb和aof文件
- 3.把上次的哨兵也关闭
- 3.对新增的三台机器Redis进行初始化
- 1.安装Redis
- 1.yum安装gcc
- 2.查看gcc版本
- 3.将redis6.2.6上传到/opt目录下
- 4.进入/opt目录下然后解压
- 5.进入 redis-6.2.6目录
- 6.编译并安装
- 7.进入 /usr/local/bin 查看是否有redis的命令
- 2.启动并使用Redis
- 1.进入 /opt/redis-6.2.6/
- 2.将里面的redis.conf复制一份到/etc下
- 3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
- 4.启动redis,指定刚才的配置文件
- 5.查看redis进程
- 3.Redis基本配置
- 编辑配置文件
- 1.修改端口为7489 port 6379
- 2.设置redis密码 requirepass foobared
- 3.设置redis节点连接其他redis的密码 masterauth(与requirepass 一致即可)
- 4.使redis支持远程访问 bind 127.0.0.1 -::1 和 protected-mode
- 5.登录redis的命令行,关闭redis(此时配置文件未生效,所以端口还是6379)
- 6.重新启动redis,使配置生效
- 4.开启7489端口
- 1.宝塔开启端口
- 2.腾讯云开启端口(只允许本机ip访问,为了方便允许所有ipv4也行,因为配置了密码)
- 5.Redis持久化配置
- 1.进入redis配置文件
- 2.dbfilename为redis持久化的文件名(一般不用改)
- 3.dir ./ 修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
- 4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes
- 5.进入命令行关闭redis,需要指定端口,密码,命令
- 6.重新启动redis,使配置生效
- 7.发现/root/下面有个配置文件,如果没有dump.rdb是因为redis库中还没东西
- 6.测试Java连接redis
- 1.引入jedis的jar包
- 2.编写测试程序
- 3.Redis无中心化集群搭建
- 1.前提条件
- 1.确保六台服务器都按照前面的要求初始化了
- 2.Redis集群单个节点配置(六个服务器都进行这个操作)
- 1.都进入redis配置文件
- 2.配置下面的三个东西,搜索 REDIS CLUSTER
- 3.配置解释
- 4.进行配置
- 5.重启redis(在解决了下面的问题再重启)
- 6.报错了(只有之前配置过了主从模式才会报错)
- 1.原因是之前的主从模式导致了这行在配置文件中持久化了,而集群模式会与这个冲突,删除即可
- 2.编辑配置文件,找到这行,删除即可
- 3.再次启动redis,发现以集群模式启动了
- 7.查看dir下是否生成对应节点文件
- 3.将六个节点合成一个集群
- 1.基本介绍
- 2.合成指令
- 3.执行报错 [ERR] Node NOAUTH Authentication required.
- 4.添加一个--askpass参数,要求输入密码即可
- 5.输入密码之后再输入yes
- 6.一直在连接,原因是还需要开放总线端口就是redis的端口 + 10000
- 7.六个服务器都要开放redis总线端口
- 1.在宝塔开启redis总线端口7489 + 10000 = 17489
- 2.在腾讯云开放17489端口
- 8.重新执行命令创建集群,连接成功!如果想要查找是谁的从,就看replicates后面的字符跟Master对应
- 1.示意图
- 2.找出对应关系
- 9.所以小结一下,创建集群的方式
- 1.开放Redis的总线端口为 redis端口 + 10000
- 2.创建集群指令
- 4.集群方式登录
- 1.登录并验证
- 2.查看节点关系
- 3.注意事项
- 5.Redis插槽机制
- 1.一个Redis集群中包含16384个插槽,编号为0-16383,
- 2.集群使用公式CRC16(key)% 16384来计算键key属于哪个插槽,从而将其存放到不同的主机上,其中CRC16(key)计算的是key的校验和
- 3.示意图
- 6.在集群录入值
- 1.首先确保登录时带的 -c参数实现自动重定向
- 1.关于密码,第一种方式是直接在连接时指定
- 2.第二种方式是连接后让他询问(推荐)
- 3.如果不对密码进行设置,则每次切换到其他服务时都要重新输入密码
- 2.录入数据则会触发插槽机制
- 3.不在同一个slot下,是不能使用mget,mset等操作的
- 1.演示
- 2.解决方式:通过 {} 来定义组,从而使key中{}内相同内容的放到同一个slot中
- 7.查询集群中的值
- 1.返回key对应的插槽值
- 2.返回插槽中有多少个key,注意,只能在该节点管理的slot范围内查找,否则为0
- 3.返回count个slot槽中的键
- 8.集群的故障恢复(注意15s超时,再观察)
- 1.如果主节点down掉了,从节点自动升级为主节点
- 1.关闭主节点
- 2.查看节点状态,父节点down了,子节点自动升级
- 2.如果主节点恢复了,就会降级为子节点
- 1.启动 主节点
- 2.再次查看节点状态,已经被降级
- 3.如果主从节点都挂掉了(概率很低),可以配置服务是否继续
- 9.集群的Jedis开发
- 1.基本说明
- 2.引入依赖
- 3.代码演示
- 4.结果展示(没有做日志配置,所以会爆红)
- 10.Redis集群的优缺点
- 1.优点
- 2.缺点
1.无中心化集群
1.基本介绍
2.集群说明
2.基本环境搭建
1.部署规划(6台服务器)
2.首先删除上次的rdb和aof文件(对之前的三台服务器都操作)
1.首先分别登录命令行,关闭redis
/usr/local/bin/redis-cli -p 7489 -a **** shutdown
2.清除/root/下的rdb和aof文件
cd && rm -rf appendonly.aof && rm -rf dump.rdb
3.把上次的哨兵也关闭
3.对新增的三台机器Redis进行初始化
1.安装Redis
1.yum安装gcc
yum install gcc
2.查看gcc版本
gcc --version
3.将redis6.2.6上传到/opt目录下
4.进入/opt目录下然后解压
cd /opt && tar -zxvf redis-6.2.6.tar.gz
5.进入 redis-6.2.6目录
cd redis-6.2.6
6.编译并安装
make && make install
7.进入 /usr/local/bin 查看是否有redis的命令
cd /usr/local/bin && ll
2.启动并使用Redis
1.进入 /opt/redis-6.2.6/
cd /opt/redis-6.2.6/
2.将里面的redis.conf复制一份到/etc下
cp redis.conf /etc/redis.conf
3.编辑 /etc/redis.conf,将daemonize no修改成daemonize yes即以守护进程的方式启动(后台启动)
vim /etc/redis.conf
4.启动redis,指定刚才的配置文件
/usr/local/bin/redis-server /etc/redis.conf
5.查看redis进程
ps -aux | grep redis
3.Redis基本配置
编辑配置文件
vim /etc/redis.conf
1.修改端口为7489 port 6379
2.设置redis密码 requirepass foobared
3.设置redis节点连接其他redis的密码 masterauth(与requirepass 一致即可)
4.使redis支持远程访问 bind 127.0.0.1 -::1 和 protected-mode
5.登录redis的命令行,关闭redis(此时配置文件未生效,所以端口还是6379)
/usr/local/bin/redis-cli shutdown
6.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
4.开启7489端口
1.宝塔开启端口
systemctl start firewalld && firewall-cmd --permanent --add-port=7489/tcp && firewall-cmd --reload && firewall-cmd --query-port=7489/tcp
2.腾讯云开启端口(只允许本机ip访问,为了方便允许所有ipv4也行,因为配置了密码)
5.Redis持久化配置
1.进入redis配置文件
vim /etc/redis.conf
2.dbfilename为redis持久化的文件名(一般不用改)
3.dir ./ 修改为/root/则每次持久化的dump.rdb都会在/root/下,恢复时无论在哪里启动,都会读取这个文件进行恢复
4.开启AOF持久化配置,编辑配置文件找到appendonly,设置成yes
5.进入命令行关闭redis,需要指定端口,密码,命令
/usr/local/bin/redis-cli -p 7489 -a **** shutdown
6.重新启动redis,使配置生效
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
7.发现/root/下面有个配置文件,如果没有dump.rdb是因为redis库中还没东西
6.测试Java连接redis
1.引入jedis的jar包
2.编写测试程序
public static void main(String[] args) {// 连接服务器的redis命令行Jedis jedis = new Jedis("你的redisip", 7489);// 如果redis设置了密码要先进行验证jedis.auth("******");String ping = jedis.ping();System.out.println(ping);}
3.Redis无中心化集群搭建
1.前提条件
1.确保六台服务器都按照前面的要求初始化了
2.Redis集群单个节点配置(六个服务器都进行这个操作)
1.都进入redis配置文件
vim /etc/redis.conf
2.配置下面的三个东西,搜索 REDIS CLUSTER
3.配置解释
4.进行配置
5.重启redis(在解决了下面的问题再重启)
/usr/local/bin/redis-cli -p 7489 -a **** shutdown && /usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
6.报错了(只有之前配置过了主从模式才会报错)
1.原因是之前的主从模式导致了这行在配置文件中持久化了,而集群模式会与这个冲突,删除即可
2.编辑配置文件,找到这行,删除即可
3.再次启动redis,发现以集群模式启动了
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
7.查看dir下是否生成对应节点文件
cd && ll
3.将六个节点合成一个集群
1.基本介绍
2.合成指令
/usr/local/bin/redis-cli --cluster create --cluster-replicas 1 *******
3.执行报错 [ERR] Node NOAUTH Authentication required.
4.添加一个–askpass参数,要求输入密码即可
/usr/local/bin/redis-cli --cluster create --cluster-replicas 1 --askpass **********
5.输入密码之后再输入yes
6.一直在连接,原因是还需要开放总线端口就是redis的端口 + 10000
7.六个服务器都要开放redis总线端口
1.在宝塔开启redis总线端口7489 + 10000 = 17489
firewall-cmd --permanent --add-port=17489/tcp && firewall-cmd --reload && firewall-cmd --query-port=17489/tcp
2.在腾讯云开放17489端口
8.重新执行命令创建集群,连接成功!如果想要查找是谁的从,就看replicates后面的字符跟Master对应
1.示意图
2.找出对应关系
9.所以小结一下,创建集群的方式
1.开放Redis的总线端口为 redis端口 + 10000
2.创建集群指令
/usr/local/bin/redis-cli --cluster create --cluster-replicas 1 --askpass *****************
4.集群方式登录
1.登录并验证
redis-cli -c -p 7489
2.查看节点关系
cluster nodes
3.注意事项
5.Redis插槽机制
1.一个Redis集群中包含16384个插槽,编号为0-16383,
2.集群使用公式CRC16(key)% 16384来计算键key属于哪个插槽,从而将其存放到不同的主机上,其中CRC16(key)计算的是key的校验和
3.示意图
6.在集群录入值
1.首先确保登录时带的 -c参数实现自动重定向
1.关于密码,第一种方式是直接在连接时指定
redis-cli -c -p 7489 -a ****
2.第二种方式是连接后让他询问(推荐)
redis-cli -c -p 7489 --askpass
3.如果不对密码进行设置,则每次切换到其他服务时都要重新输入密码
2.录入数据则会触发插槽机制
3.不在同一个slot下,是不能使用mget,mset等操作的
1.演示
2.解决方式:通过 {} 来定义组,从而使key中{}内相同内容的放到同一个slot中
7.查询集群中的值
1.返回key对应的插槽值
cluster keyslot <key>
2.返回插槽中有多少个key,注意,只能在该节点管理的slot范围内查找,否则为0
cluster countkeysinslot <slotnum>
3.返回count个slot槽中的键
cluster getkeysinslot <slot> <count>
8.集群的故障恢复(注意15s超时,再观察)
1.如果主节点down掉了,从节点自动升级为主节点
1.关闭主节点
/usr/local/bin/redis-cli -p 7489 -a *** shutdown
2.查看节点状态,父节点down了,子节点自动升级
cluster nodes
2.如果主节点恢复了,就会降级为子节点
1.启动 主节点
/usr/local/bin/redis-server /etc/redis.conf && ps -aux | grep redis
2.再次查看节点状态,已经被降级
cluster nodes
3.如果主从节点都挂掉了(概率很低),可以配置服务是否继续
9.集群的Jedis开发
1.基本说明
2.引入依赖
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency>
3.代码演示
public static void main(String[] args) {Set<HostAndPort> hostAndPorts = new HashSet<HostAndPort>();// 添加集群节点,可以是多个,保证容错性hostAndPorts.add(new HostAndPort("", 7489));// 创建 JedisPoolConfig 并设置密码JedisPoolConfig poolConfig = new JedisPoolConfig();String password = ""; // 将 "你的密码" 替换为你的 Redis 密码// 创建 JedisCluster 对象时传入密码redis.clients.jedis.JedisCluster jedisCluster = new redis.clients.jedis.JedisCluster(hostAndPorts, 2000, 2000, 5, password, poolConfig);try {// 设置和获取值jedisCluster.set("k1", "v1");String k1 = jedisCluster.get("k1");System.out.println("k1=" + k1);} finally {// 确保在最后关闭 JedisCluster 来释放资源jedisCluster.close();}}
4.结果展示(没有做日志配置,所以会爆红)
10.Redis集群的优缺点
1.优点
2.缺点
相关文章:
Redis(无中心化集群搭建)
文章目录 1.无中心化集群1.基本介绍2.集群说明 2.基本环境搭建1.部署规划(6台服务器)2.首先删除上次的rdb和aof文件(对之前的三台服务器都操作)1.首先分别登录命令行,关闭redis2.清除/root/下的rdb和aof文件3.把上次的…...
基于springboot+jsp+Mysql的商务安全邮箱邮件收发
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
三.Django--ORM(操作数据库)
目录 1 什么是ORM 1.1 ORM优势 1.2ORM 劣势 1.3 ORM与数据库的关系 2 ORM 2.1 作用 2.2 连接数据库 2.3 表操作--设置字段 2.4 数据库的迁移 写路由增删改查操作 项目里的urls.py: app里的views.py: 注意点: 1 什么是ORM ORM中文---对象-关系映射 在MTV,MVC设计…...
【华为】AC直连二层组网隧道转发实验配置
【华为】AC直连二层组网隧道转发实验配置 实验需求拓扑配置AC数据规划表 AC的配置顺序AC1基本配置(二层通信)AP上线VAP组关联--WLAN业务流量 LSW1AR1STA获取AP的业务流量 配置文档 实验需求 AC组网方式:直连二层组网。 业务数据转发方式:隧道转发。 DHC…...
第 129 场 LeetCode 双周赛题解
A 构造相同颜色的正方形 枚举:枚举每个 3 3 3\times 3 33的矩阵,判断是否满足条件 class Solution {public:bool canMakeSquare(vector<vector<char>>& grid) {for (int i 0; i < 2; i)for (int j 0; j < 2; j) {int c1 0, c…...
GStreamer日志调试笔记
1、查询所有分类 #gst-launch-1.0 --gst-debug-help 2、查询videotestsrc的日志 #gst-launch-1.0 --gst-debug-help | findstr videotestsrc 结果: 3、使用--gst-debug设置相应日志类型的相应等级,越大显示日志越多,排查内存泄露可以设置为9 …...
【api接口开通教程】YouTube Data API v3申请流程
一、背景调查 1.1 API接口介绍 采集youtube数据,大体分为两种方案:一种是基于爬虫,一种是基于API接口。 说人话就是:爬虫相当于走后门、爬窗户(利用技术手段窃取,人家没说给,但我硬拿&#x…...
.net 6.0 框架集成ef实战,步骤详解
一、代码框架搭建 搭建如下代码架构: 重点含EntityFrameworkCore工程,该工程中包含AppDbContext.cs和数据表实体AggregateObject 1、AppDbContext 代码案例 //AppDbContext 代码案例using Microsoft.EntityFrameworkCore;namespace EntityFrameworkCo…...
[C/C++] -- 观察者模式
观察者模式是一种行为型设计模式,用于定义对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式涉及以下几个角色: 主题(Subject)&…...
秋招算法刷题8
20240422 2.两数相加 时间复杂度O(max(m,n)),空间复杂度O(1) public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode headnull,tailnull;int carry0;while(l1!null||l2!null){int n1l1!null?l1.val:0;int n2l2!…...
Docker使用方法
Docker是一种容器化平台,它可以帮助开发人员将应用程序和其依赖项打包成一个独立的、可移植的容器,以便在不同的环境中运行。 以下是使用Docker的基本步骤: 安装Docker:首先,您需要在您的机器上安装Docker。您可以从D…...
HTML学习|网页基本信息、网页基本标签、图像标签、超链接标签、列表标签、表格标签、媒体元素、页面结构分析、iframe内联框架
网页基本信息 DOCTYPE是设置使用什么规范,网页整个信息都在html标签中,head标签里包含字符集设置,网页介绍等信息,title标签是网页的名称,网页的主干都在body标签中 网页基本标签 标题标签 h1~h6都是标题标签&#x…...
001 websocket(评论功能demo)(消息推送)
文章目录 ReviewController.javaWebSocketConfig.javaWebSocketProcess.javaServletInitializer.javaWebsocketApplication.javareadmeindex.htmlapplication.yamlpom.xml ReviewController.java package com.example.controller;import com.example.websocket.WebSocketProces…...
二分查找向下取整导致的死循环69. x 的平方根
二分查找向下取整导致的死循环 考虑伪题目:从数组arr中查找出目标元素target对应的下标,如果数组中不存在目标元素,找 到第一个元素值小于target的元素的下标。 编写二分查找算法如下: Testvoid testBinarySearch(){int[] arr n…...
Kivy 异步任务
如果要进行一些非常耗时的操作(例如:爬虫等),那么页面就会在这里卡住,而系统就会以为这个软件无响应,并提示关闭,可以说明用户体验极差,因此我们在此处引入异步操作。 在py中引入事件调节器,并在…...
DEV--C++小游戏(吃星星(0.1))
目录 吃星星(0.1) 简介 头文件 命名空间变量 副函数 清屏函数 打印地图函数 移动函数 主函数 0.1版完整代码 吃星星(0.1) 注:版本<1为未实现或只实现部分 简介 用wasd去吃‘*’ 头文件 #include<bi…...
LINUX 入门 4
LINUX 入门 4 day6 7 20240429 20240504 耗时:240min 课程链接地址 第4章 LINUX环境编程——实现线程池 C基础 第3节 #define里面的行不能乱空行,要换行就打\ typedef 是 C 和 C 中的一个关键字,用于为已有的数据类型定义一个新的名字。…...
Imagine Flash、StyleMamba 、FlexControl、Multi-Scene T2V、TexControl
本文首发于公众号:机器感知 Imagine Flash、StyleMamba 、FlexControl、Multi-Scene T2V、TexControl You Only Cache Once: Decoder-Decoder Architectures for Language Models We introduce a decoder-decoder architecture, YOCO, for large language models, …...
Java Collections.emptyList() 方法详解
前言 在Java开发的日常中,我们常常需要处理集合数据结构,而这其中就免不了要面对“空集合”的场景。传统的做法可能是直接返回 null,但这往往会引入空指针异常的风险,降低了代码的健壮性。幸运的是,Java为我们提供了一…...
Vue前端环境准备
vue-cli Vue-cli是Vue官方提供的脚手架,用于快速生成一个Vue项目模板 提供功能: 统一的目录结构 本地调试 热部署 单元测试 集成打包上线 依赖环境:NodeJs 安装NodeJs与Vue-Cli 1、安装nodejs(已经安装就不用了) node-…...
代码随想录算法训练营第四十二天| 01背包问题(二维、一维)、416.分割等和子集
系列文章目录 目录 系列文章目录动态规划:01背包理论基础①二维数组②一维数组(滚动数组) 416. 分割等和子集①回溯法(超时)②动态规划(01背包)未剪枝版剪枝版 动态规划:01背包理论基…...
故障——蓝桥杯十三届2022国赛大学B组真题
问题分析 这道题纯数学,考察贝叶斯公式 AC_Code #include <bits/stdc.h> using namespace std; typedef pair<int,double> PI; bool cmp(PI a,PI b){if(a.second!b.second)return a.second>b.second;return a.first<b.first; } int main() {i…...
SSD存储基本知识
存储技术随着时间的推移经历了显著变化,新兴的存储介质正逐步挑战已经成为行业标准的硬盘驱动器(HDD)。在众多竞争者中,固态硬盘(SSD)是最广泛采用且最有潜力占据主导地位的——它们速度快、运行安静&#…...
buuctf-misc题目练习二
ningen 打开题目后是一张图片,放进winhex里面 发现PK,PK是压缩包ZIP 文件的文件头,下一步是想办法进行分离 Foremost可以依据文件内的文件头和文件尾对一个文件进行分离,或者识别当前的文件是什么文件。比如拓展名被删除、被附加…...
Nginx rewrite项目练习
Nginx rewrite练习 1、访问ip/xcz,返回400状态码,要求用rewrite匹配/xcz a、访问/xcz返回400 b、访问/hello时正常访问xcz.html页面server {listen 192.168.99.137:80;server_name 192.168.99.137;charset utf-8;root /var/www/html;location / {root …...
2024,AI手机“元年”? | 最新快讯
文 | 伯虎财经,作者 | 铁观音 2024年,小米、荣耀、vivo、一加、努比亚等品牌的AI手机新品如雨后春笋般涌现。因此,这一年也被业界广泛视为AI手机的“元年” 试想,当你轻触屏幕,你的手机不仅响应你的指令,更…...
5月9(信息差)
🌍 可再生能源发电量首次占全球电力供应的三成 🎄马斯克脑机接口公司 Neuralink 计划将 Link 功能扩展至现实世界,实现控制机械臂、轮椅等 马斯克脑机接口公司 Neuralink 计划将 Link 功能扩展至现实世界,实现控制机械臂、轮椅等…...
leetcode203-Remove Linked List Elements
题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2: 输入&…...
2024付费进群系统,源码及搭建变现视频课程(教程+源码)
自从我做资源站项目盈利稳定后,我越来越对网站类项目感兴趣了,毕竟很多网站类项目还是需要一定技术门槛的,可以过滤掉一些人,很多新人做项目就只盯着短视频,所以网站类项目也就没那么的卷。 这个付费进群系统…...
深入理解Django:中间件与信号处理的艺术
title: 深入理解Django:中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 tags: Django中间件信号异步性能缓存多语言 引言 在当今的Web开发领域,Django以其强大的功能、简洁的代码结构和高度的可扩…...
个人博客网站教程/什么时候网络推广
飞跃原野一秒钟杀死互联网。 这就是全部。 昨天的second秒使原子钟与地球自转对齐,导致广泛的在线混乱,因为准备不足的网站和软件花费了额外的秒。 在格林尼治标准时间午夜cho睡的人中,Reddit,Gawker, StumbleUpon&am…...
c 网站开发技术/电商平台推广方式有哪些
一:范围分区 就是根据数据库表中某一字段的值的范围来划分分区,例如: Sql代码 create table graderecord ( sno varchar2(10), sname varchar2(20), dormitory varchar2(3), grade int ) partition by range(grade) ( …...
青岛手机网站建设公司/微友圈推广平台怎么加入
1.组件对象的序列化 从TCOMPONENT继承下来的组件对象序列化都简单,因为它本身支持流化,通过流化也就达到了序列化组件对象的目的。 TReader和TWriter都只支持Tcomponent流化,除非你自己写个TReader和TWriter,就有可能支持TPersiten的流化. function Co…...
微信咋做自己的网站/宣传软文模板
184行前添加: if (asm.GetType().FullName ! "System.Reflection.RuntimeAssembly") continue;忽略错误 缓存的Provider 不能执行 存储过程,报 NotSupportedException("Command tree type " commandTree.GetType() " is not …...
韩国网站加速器/如何让百度收录网址
安装Python包python-pptx需要用到lxml,而安装lxml报错: fatal error: libxml/xmlversion.h file not found 解决方法: xcode-select --install 安装完commandline tool for xcode后,在安装就不会出错了。 本文转自 h2appy 51CTO博…...
怎么在一起做网站上拿货/竞价托管是啥意思
我一直坚持在Linux下钻研计算机软件的相关知识,三个半月前学完了《数据库系统概论》这本书。在学习中我使用了MySQL作为练兵场,但当我学到书的后半部分的时候,发现MySQL有一些问题: 1、MySQL没有角色权限控制功能,也就…...