Redis的五种对象类型及其底层实现
Redis对象类型简介
Redis是一种key/value型数据库,其中,每个key和value都是使用对象表示的。比如,我们执行以下代码:
redis>SET message "hello redis"
其中的key是message,是一个包含了字符串"message"的对象。而value是一个包含了"hello redis"的对象。
Redis共有五种对象的类型,分别是...
sharding-jdbc系列之 数据源配置(一)
spring boot Yaml方式
@Bean(name = "testDataSource")
public DataSource testDataSource() throws IOException {
String yml = "jdbc/testDataSource.yaml";
Resource certResource = new ClassPa...
sharding-jdbc系列之SQL解析(二)
前言
再讲SQL路由之前,先简要的将一个SQL解析,SQL解析是sharding-jdbc非常底层的东西,了解这个,
对于真正用这个中间件的作用相对来说稍微弱一点,但是也要了解一个大概。
ParsingSQLRouter
在SQL路由之前,都会调用该类的parse方法,进行SQL解析
public final class ParsingSQLRouter implements SQLR...
sharding-jdbc系列之SQL路由(三)
前言
本文基于sharding-jdbc1.5.4 , mybatis1.3.0
代码入口
源码入口: com.dangdang.ddframe.rdb.sharding.jdbc.core.statement.ShardingPreparedStatement
该类实现了PreparedStatement接口 。
在mybatis执行SQL的时候,会调用PreparedStatemen...
kafka快速开始教程
此教程假设你刚刚开始没有任何 Kafka 或 ZooKeeper 数据。Kafka的控制台脚本在类Unix和Windows平台不同,Windows平台使用bin\windows\\代替bin/,脚本的扩展名改为.bat。
第一步:下载代码
下载0.10.1.0发行版并解压。
> tar -xzf kafka_2.11-0.10.1.0.tgz
> cd kafka_2.11-0...
sharding-jdbc系列之分片算法(四)
前言
通过前文,我们可以知道,不管是简单路由还是复杂路由,最终都是通过SQL计算出最小执行单元,
也就计算该SQL涉及到哪些数据源,哪些表。 在计算这个的时候,都会用到通过ShardingStrategy
这个类来处理。今天主要就是讲这个类。
ShardingStrategy
这个类都会通过当前的分表规则获取。
代码片段如下:
分库
private Collection&l...
C++继承之 重载 、覆盖、隐藏
在C++ 继承中经常会遇到函数重载、覆盖、隐藏这三个玩意,但是这三者的本质区别又是什么,自己在网上和资料里查后并通过代码证实,下面我们看看者三者的本质:
1、重载:
重载是C++独有的一个特性,C下面是没有的,具体分析请看:http://blog.csdn.net/magiclyj/article/details/71081288.
这里我们来具体看看重载,重载特点:
1、在同一范围
2、
安装Ubuntu 14.04后需要做的5件事情
Ubuntu最新版本Ubuntu 14.04已经发布,它是一个长期支持版本(LTS),提供软件包和安全更新的服务周期为5年。本文为大家简单介绍了Ubuntu 14.04版本新特性和安装Ubuntu 14.04后需要做的5件事情,以供参考。Ubuntu目前是世界上最流行的Linux操作系统,它提供了桌面版本和服务器版本,其他流行的Linux发行版本如Linux Mint也是基于Ubuntu定制而来。u
Ubuntu 平台的防火墙关闭命令
一直使用的是Redhat平台,防火墙关闭命令也很简单,使用systemctl stop firewal(用tab键补齐),但是使用了ubuntu之后发现这个命令并不能使用,所以这里记录一下我自己在网上学到的,ubuntu官方提供了一个脚本ufw来替代繁琐的iptables系列方所命令,而且使用起来也很方便,下面我们来看看ufw对防火墙的操作使用:
1、关闭防火墙:
#sudo ufw dis
Linux系统SVN工具搭建
SVN(subversion)使我们在Windows和Linux下上传和下载文件的一个工具,同事也能实现对文件的管理,也是对项目管理的一个工具。小型文件的上传下载比较方便的,这里也主要说说SVN在Redhat和ubuntu平台的安装和搭建:安装:1、Redhat 安装svn:yum install -y subversion //可以解决依赖问题
2、ubuntu 安装svn:sudo apt-ge
C++继承之钻石继承和虚继承
C++中继承在之前博客里分享过,主要说的是连个特殊的继承:钻石继承和虚继承两个身份证号显然是不合理的。可以把class Person这个共同基类设置为虚基类,这样从不同路径继承来的同名数据成员在内存中就只有一个拷贝,同名函数也只有一种映射。 。1、钻石继承:1)首先我们先看一个简单的继承: 1 #include <iostream>
shell输入/输出重定向
在shell里也和我们程序中一样:0代表标准输入(stdin),使用<和<<,/dev/stdin->/proc/self/fd/0 0代表:/dev/stdin;
1代表标准输出(stdout),使用>和>>,/dev/stdout->/proc/self/fd/1 1代表:/dev/stdout;
2代表标准错误输出(stderr): /dev/stderr->/proc/self/fd/2
shell 文件包含
在shell编程里文件相互是可以包含的,在一个文件里访问另外一个文件,具体操作如下:
访问另外一个脚本时需要在两种格式中选一个格式来操作,被包含的文件不需要可执行权限。
运行file.sh脚本,会输出file1.sh的内容:
shell if语句和test命令
在shell中if条件判断语句和我们的C、C++、Java等语言是不同的,shell的if语句条件必须用[ ]括起来,另外[ ]里外都需要用空格与周围隔开(例如[ a==b ]),否则报错;另外与if配对的有else if和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:
if(a==b)
printf("a=b");
else
{
//什么都没有
}
但是s...
shell中的循环语句
在我们平时使用C/C++编程中循环无疑是for和while,二者结束的标志是break,continue是二者结束本轮函数进入下一论循环的开关,但是在shell里除了for和while还有一个until,情况分析有case语句,但是和C/C++中完全不一样,在代码中有详细的标注: 1 #!/bin/bash
I/O复用select、poll、epoll之pk
一、select、poll、epoll简介:epoll跟select都能提供多路I/O复用的解决方案。在现在的Linux内核里有都能够支持,其中epoll是Linux所特有,而select则应该是POSIX所规定,一般操作系统均有实现
select:
select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1、 单个进程可监视的fd数量被限制,即
快速排序和归并排序算法
快速排序:
https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/369842?fr=aladdin&fromid=2084344&fromtitle=%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F
#include
using namespace std
linux 下vim的多文件操作
vim下如何同时打开多个文件,而且多个文件间切换操作,在网上搜集一些材料,自己整理了一下,下面我们来看看这些操作:
一、打开多个文件:
1、vim还没启动时:
#:vim file1 file2 file3…filen /或者使用/ //直接在命令行中输入
打开后会显示在第一个文件页面上
vim * //打开当前目录下所有文件
2、vim已经启动打开其他文件:
:o
VMWare虚拟机上安装的Linux仅与宿主机之间的互通
最近一直很困惑虚拟机上的Redhat和宿主Windows7之间有时候在WiFi下可以互通有时候无法互通,导致用putty连接虚拟机同时使用两个系统很麻烦,在网上查了很多资料和自己亲自测试成功,现将过程记录下来:
虚拟机的网络模式有以下几种:
1、桥接模式(B):直接连接物理网络
2、NAT模式(N):用于共享主机的IP地址
3、仅主机模式(H):与主机共享的专用网络
其他自定义或者LAN
今日推荐
周排行