redis主从,哨兵(windows版)
一、下载 由于redis官方并不支持windows操作系统,所以官网上是下不到的,需要到gitlab上下载,下载地址如下: https://github.com/MicrosoftArchive/redis/releases 二、解压安装 将下载后的zip文件解压到本地磁盘,注意解压到的目录不能有中文和特殊字符,否则会出现很多奇葩的问题。解压后的目录如下: 三、HA配置 我们采用一主(master)二从(slave)三se
Java JSON的解析和创建
几乎所有的编程语言例如:Java、Python、Node.js、JavaScript 和 Ruby 等都提供了创建和解析 JSON 数据的方法,本节我们主要来介绍一下如何使用 Java 来创建和解析 JSON 数据。 Java 中没有内置任何处理 JSON 数据的函数或库,所以我们需要借助一些开源的库来实现 JSON 数据的创建和解析,比较常用的有 JSON.simple、Jackson、Gson、Moshi 等,接下来以 JSON.simple 为例,来演示一下如何使用 Java 来创建
MongoDB复制(副本集)
MongoDB 中的复制就是跨多个服务器同步数据的过程,复制提供了数据的冗余备份,在多个服务器中存储数据副本,以此来提高数据的可用性,并可以保证数据的安全性。另外,复制还可以防止数据丢失,因为复制允许您从硬件故障或服务中断的过程中恢复数据。 为什么使用复制 下面列举了几个使用复制的好处: 确保您数据的安全; 保障数据的高可用性; 数据恢复; 维护过程无需停机(例如备份、索引重建、压缩); 分布式读取数据; 副本
PHP函数参数传递的四种方式
在调用函数时,需要向函数传递参数,被传入函数的参数称为实参,而函数定义的参数称为形参。而向函数传递参数的方式有四种,分别是值传递、引用传递、默认参数和可变长度参数。 1. 值传递 值传递是 PHP 中函数的默认传值方式,也称为“拷贝传值”。顾名思义值传递的方式会将实参的值复制一份再传递给函数的形参,所以在函数中操作参数的值并不会对函数外的实参造成影响。因此如果不希望函数修改实参的值,就可以通过值传递的方式。 【示例】下面定义一个简单的函数,函数有两个参数,
C++ hash(STL hash)及其函数模板用法详解
如果在容器中保存对象及其关联的键,并且不用键来决定 键/对象 对的顺序,那就必须对键值釆用其他方式来确定元素在内存中的位置。如果使用像 string 这样的对象作为键,就会遇到一些问题,可能的变量的数目是巨大的。具有 10 个字符的字母字符串可能的个数是 2610。这个索引范围没有多大用处。我们需要一种机制来将它变为可接受的范围;而且理想情况下,这个机制可以为每个键生成唯一的值。这也是哈希需要做的事情之一。 哈希是用给定范围的基本类型的数据项,或者用像 string 这样的对象,生成整数值
MySQL约束概述
在 MySQL 中,约束是指对表中数据的一种约束,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性和有效性。 例如,在数据表中存放年龄的值时,如果存入 200、300 这些无效的值就毫无意义了。因此,使用约束来限定表中的数据范围是很有必要的。 在 MySQL 中,主要支持以下 6 种约束: 1)主键约束 主键约束是使用最频繁的约束。在设计数据表时,一般情况下,都会要求表中设置一个主键。 主键是表的一个特殊字段,该字段能唯一标识该表中的每条信息。例
Java final修饰符:final修饰属性、final修饰方法及final修饰类
final 关键字表示对象是最终形态的,对象是不可改变的意思。final 应用于类、方法和变量时意义是不同的,但本质是一样的:final 表示不可改变。 final 用在变量的前面表示变量的值不可以改变,此时该变量可以被称为常量;final 用在方法的前面表示方法不可以被重写;final 用在类的前面表示类不可以被继承,即该类是最终形态,如常见的 java.lang.String 类。 final 修饰符使用在如下方面: 1. final 修饰类中的属性 表示该属性一旦被初
C++ multimap(STL multimap)的使用详解
multimap 容器保存的是有序的键/值对,但它可以保存重复的元素。multimap 中会出现具有相同键的元素序列,它们会被添加到容器中。multimap 和 map 有相同范围的构造函数,默认的比较键的函数是 less<K>()。 multimap 大部分成员函数的使用方式和 map 相同。因为重复键的原因,multimap 有一些函数的使用方式和 map 有一些区别。接下来介绍 multimap 和 map 容器不同的那些成员函数的用法。 multimap 容器的成
Go语言reflect.Elem()——通过反射获取指针指向的元素类型
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下: package main import ( "fmt" "reflect" ) func main() { // 声明一个空结构体 type cat struct { } // 创建cat的
C# Hashtable:哈希表
在 C# 中,Hashtable(哈希表) 类表示根据键的哈希代码进行组织的键(key)/值(value)对的集合,可以使用键来访问集合中的元素。也就是说当您需要使用键来访问指定元素时,可以选择使用哈希表。 Hashtable 类中的属性 下表中列出了 Hashtable 类中一些常用的属性: 属性 描述 Count 获取哈希表中包含的键值对的个数
C# class:类
在 C# 中,类是引用类型的,其中包括状态(成员属性)和操作(成员方法和其它函数成员),我们可以动态创建类的实例(instance),这个实例也被称为对象(object),我们可以通过类和对象来设计程序。 1、类的定义 类的定义需要使用 class 关键字,语法格式如下: <access specifier> class class_name { // 成员属性 <access specifier> <data type
MySQL DATEDIFF() 函数
定义和用法 DATEDIFF() 函数返回两个日期之间的天数。 语法 DATEDIFF(date1,date2) date1 和 date2 参数是合法的日期或日期/时间表达式。 注释:只有值的日期部分参与计算。 实例 例子 1 使用如下 SELECT 语句: SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate 结果: DiffDate 1 例子 2
Android在Sqlite3中的应用及多线程使用数据库的建议(实例代码)
下面是针对“Android在Sqlite3中的应用及多线程使用数据库的建议”这个话题的详细攻略。 1. Android中Sqlite3的应用 在Android中,我们可以使用Sqlite3作为本地数据库,用来存储和管理数据。以下是Sqlite3的基础应用: 1.1 创建数据库 在Android中,我们可以通过继承SQLiteOpenHelper类来创建和管理数据库。以下是一个创建数据库的示例代码: public class MyDatab
SQL LOADER错误小结
SQL LOADER是一个用于将数据从纯文本文件加载到ORACLE数据库中的工具,但是在实际使用中难免会遇到一些错误,本攻略旨在帮助大家更好地掌握SQL LOADER程序中的错误类型及解决方法。 SQL LOADER常见错误类型 1. 数据输入文件格式错误 这种错误通常是由于输入文件在编写时格式不规范,如某一行结束符缺失或者格式不统一等。在SQL LOADER中,可以通过查看日志文件(.log)来找到具体的错误信息,例如: Record
MySQL——排序和分页
1、排序(ORDER BY) 升序 :ASC 降序 :DESC ORDER BY: 通过那个字段排序,怎么排 -- 查询的结果根据 成绩升序 排序 SELECT s.`StudentNo`,`StudentName`,`SubjectName`,`StudentResult` FROM student s INNER JOIN `result` r ON s.StudentNo = r.StudentNo INNER JOIN