当前位置:Gxlcms > 数据库问题 > 数据库自学(1)

数据库自学(1)

时间:2021-07-01 10:21:17 帮助过:2人阅读

分布式,内存缓存,服务器

 

内存缓存:

提供将数据缓存到内存中服务。数据在内存中,为一个临时的存储器,通常作为缓存服务器来使用,而不是数据服务器来使用。

缓存:将中间结果临时存储,就是缓存技术。

Memcache是缓存服务器,仅仅提供存储缓存数据,而不决定什么样的数据存储于缓存中。

 

分布式:

多台memcache服务器,组成memcache集合。

 

 

安装

Windows

下载,解压,并拷贝到指定目录

官网:http://memcached.org/

技术分享

Memcached的服务器端程序。

技术分享

 

Linux

 

Memcached服务器安装完毕。

 

管理memcached服务器

方案一:基于CMD(命令行)的程序

通过CMD命令行,进行管理:

技术分享

 

全部使用默认参数,即可开启memcached服务器:

技术分享

此时,该memcached服务器,监听任意网卡(IP),11211端口上的请求。

 

典型的选项:

-p 所监听的端口

技术分享

-l 所监听的网卡接口

如果一台电脑存在多个网络连接,可以指定监听哪个网络的请求

技术分享

 

 

方案二:针对windows

通过访问的方式,管理memcached

选择–d 来控制该守护进程(deamon

以管理员权限运行cmd

技术分享

 

-d install安装服务

技术分享

技术分享

 

-d uninstall卸载服务

技术分享

 

使用Memcached

基于C/SClient-Server

刚刚memcached是服务器端软件。

需要提供客户端软件。

Memcached的数据交互协议,基于文本的。因此只要可向目标服务器发送文本,即可memcached客户端使用。例如:telnet

 

通过客户端软件 secureCRT来发送telnet协议,连接memcached服务器:

技术分享

puttywindows自带的telnet都可以)

技术分享

 

Memcached数据存储KEY-Value

一个KEY,对应一个值。

 

 

操作命令

设置

Set

Set KEY 是否压缩 有效期 长度

技术分享

 

Key                具有独立标志功能的字符串,长度在250个字节之内。

是否压缩         是否将数据压缩后进行存到服务器端。节省存储空间(需要压缩与解压时间)。

有效期:             数据在服务器端存储的有效时间。有效期的表示方式存在2种,时间间隔,时间戳。其判断使用哪种方式,依据有效期整数值的大小。临界值为: 30*24*3600 = 2592000

技术分享

测试获取:

技术分享

发现e3过期,因为:超过2592000当作时间戳来处理。

 

如果需要设置超过30天的数据,则使用时间戳的形式:

Time()+间隔

技术分享

长度              数据占用的空间,单位字节。与字符集相关。

技术分享

 

 

存在则替换,不存在则创建。

Add

添加

使用方式与参数与set一致。

仅仅可以完成添加,如果key已经存在,则add失败。

技术分享

Replace

替换

使用方式与参数与set一致。

仅仅完成存在时替换。

技术分享

 

Incr

Increment,递增

将已有值,递增N个数

get+set

Decr

Decrement,递减

get-set

技术分享

获取

Get KEY

技术分享

删除

Delete key

删除某个key

技术分享

Flush_all

删除全部

 

Stats

获取当前服务器状态信息

技术分享

 

PHP操作memcached

PHP作为memcached服务器的客户端来使用。

加载memcached操作扩展:memcache

将扩展文件:php_memcached.dll 看拷贝到PHP的扩展目录

技术分享

修改PHP.ini增加开启该扩展指令:

技术分享

技术分享

 

 

该扩展提供面向对象的操作语法:

实例化memcache对象

技术分享

建立连接

Connect

技术分享

 

设置

$mem->set(KEY, VALUE, 是否压缩, 有效期)

$mem->add(KEY, VALUE, 是否压缩, 有效期);

$mem->replace(KEY, VALUE, 是否压缩, 有效期);

技术分享

技术分享

如果需要压缩存储,将flag标志设置为

MEMCACHE_COMPRESSED

$mem->increment();

$mem->decrement();

技术分享

获取

$mem->get(KEY);

技术分享

删除

技术分享

获得统计信息

技术分享

技术分享

 

PHP不同数据类型

分成两类进行处理:

标量类型:

整型,浮点型,布尔型,字符串

以字符串的形式进行存储:

技术分享

非标量类型:

数组,对象,  NULL

数据类型可以被保存,获得原始数据。可见,set方法,在判断当前的数据为非标量类型时,自动进行序列化存储,获取时完成反序列化返回。

技术分享

 

分布式的memcached

各个memcached服务器间互不通讯的分布式算法。

要求,分布式算法(一个key 对应哪台memcached服务器)是由客户端决定(实现)的。

技术分享

 

Memcached默认实现的是:

取模(求余):依据服务器的数量,计算余数,对应某台memcached服务器。

 

使用:

技术分享

 

后续的使用与基本操作是相同的:

 

 

人气教程排行