一、文件缓存tmpfs

1、特性

1) 基于内存的文件系统,RAW+SWAP,虚拟内存
2) tmpfs使用虚拟内存,/dev/shm/使用共享内存
3) 访问速度快,可以动态调整大小
4) 没有持久性,重启后删除
5) 占用的空间不会在内存清理的时候删除(这点注意)

2、应用场景

1) squid或nginx缓存
2) PHP Session
3) 存放socket
4) 自定义缓存

3、文件拷贝到/dev/shm目录中,查看内存的变化

# df -Th
tmpfs tmpfs 912M 0 912M 0% /dev/shm# cp jdk-8u131-linux-x64.gz /dev/shm
# df -Th
tmpfs tmpfs 912M 177M 735M 20% /dev/shm
# free -m
# rm -f /dev/shm/jdk-8u131-linux-x64.gz 
# free -m

4、创建文件,并划分为tmpfs文件系统

# mkdir /mnt/data
# mount -t tmpfs tepfs /mnt/data/# df -h
tmpfs 912M 0 912M 0% /mnt/data

5、指定tmpfs文件系统大小为50M

# mkdir /mnt/data1
# mount -t tmpfs -o size=50m tmpfs /mnt/data1
# df -h
tmpfs 50M 0 50M 0% /mnt/data1

6、重新设置tmpfs文件系统大小为100M

# mount -o remount,size=100m /mnt/data
# df -h
tmpfs 100M 0 100M 0% /mnt/data

7、永久生效

# vim /etc/fstab
tempfs /mnt/data tmpfs size=50M 0 0

二、ssdb主从及双主模型配置和简单管理

1、介绍

1、levelDB是key->value数据库,只能本地保存数据,支持持久化,支持保存非常大的数据,官网地址http://leveldb.org
单机redis保存10G数据时,会出现响应慢,单机levelDB,保存150G以内数据,依然保持良好的性能,
随机写入数据,每秒40W条,随机读,每秒6W,适合写入多的场景,不支持网络传输,只能本机访问数据 2、SSDB是levelDB的网络实现,存储大数据比redis更加稳定
官方文档:http://ssdb.io/zh_cn/
安装文档:http://ssdb.io/docs/zh_cn/install.html 3、国内360基于levelDB开发支持网络接口的SSDB,C/C++语言开发高性能NoSQL数据库,
支持KV,list,map(hash),zset(sorted set)等,SSDB支持网络、支持redis客户端、
支持python/java/go/PHP/C++语言、支持持久化、支持主从复制、主主复制和负载均衡等功能
即使有主从,每天也要备份文件目录,备份工具: ssdb-dump

2、ssdb服务的安装和配置

1、安装依赖
# yum install -y jemalloc-devel autoconf 2、下载安装包并编译
# wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip
# unzip master.zip
# cd ssdb-master/
# make && make install #默认安装/usr/local/ssdb 3、修改启动脚本
# cp tools/ssdb.sh /etc/init.d/ssdb
# vim /etc/init.d/ssdb
configs="/usr/local/ssdb/ssdb.conf" 4、加入启动项
# chkconfig --add ssdb
# chkconfig ssdb on
# chkconfig --list ssdb 5、配置命令路径
# vim /etc/profile
PATH=$PATH:/usr/local/ssdb
export PATH
# source /etc/profile 6、修改配置文件
# vim /usr/local/ssdb/ssdb.conf
server:
ip: 192.168.3.200
port: 8888 7、启动服务
# /etc/init.d/ssdb start
# ss -tnlp|grep 8888 8、 测试
# ssdb-cli -h 192.168.3.200 -p 8888> set name jack> set age 18> get name

3、配置主从同步

① 从服务器配置

配置主服务器的ID、type、host、port
# vim /usr/local/ssdb/ssdb.conf
replication:
binlog: yes
sync_speed: -1
slaveof:
id: node1 #配置主的id
type: sync #同步方式
host: 192.168.3.200 #主的ip
port: 8888

② 从服务器info信息

ssdb 192.168.3.198:8888> info
version
1.9.4
links
1
total_calls
9
dbsize
0
binlogs
capacity : 20000000
min_seq : 0
max_seq : 4
replication
slaveof 192.168.3.200:8888
id : node1
type : sync
status : SYNC
last_seq : 3
copy_count : 3
sync_count : 0
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "address" - "salary"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)

③ 主服务器info信息

ssdb 192.168.3.200:8888> info
version
1.9.4
links
1
total_calls
12
dbsize
0
binlogs
capacity : 20000000
min_seq : 0
max_seq : 3
replication
client 192.168.3.198:57714
type : sync
status : SYNC
last_seq : 3
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "address" - "name"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)

4、配置双主同步(主要是高可用)

1、介绍
SSDB数据库支持双主和多主,但当作单主来用,只能单写,将type改为mirror,然后每个节点指向对方 2、node1的配置
# vim /usr/local/ssdb/ssdb.conf
server:
ip: 192.168.3.200
port: 8888 replication:
binlog: yes
sync_speed: -1
slaveof:
id: node2
type: mirror
host: 192.168.3.198
port: 8888 3、node2的配置
# vim /usr/local/ssdb/ssdb.conf
server:
ip: 192.168.3.198
port: 8888 replication:
binlog: yes
sync_speed: -1
slaveof:
id: node1
type: mirror
host: 192.168.3.200
port: 8888 4、node1中的info信息
ssdb 192.168.3.200:8888> info
version
1.9.4
links
1
total_calls
1
dbsize
273
binlogs
capacity : 20000000
min_seq : 1
max_seq : 71
replication
client 192.168.3.198:57724
type : mirror
status : SYNC
last_seq : 71
replication
slaveof 192.168.3.198:8888
id : node2
type : mirror
status : SYNC
last_seq : 68
copy_count : 4
sync_count : 64
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "address" - "salary"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
0 1 0 0 0 0 5、node2中的info信息
ssdb 192.168.3.198:8888> info
version
1.9.4
links
1
total_calls
6
dbsize
1690
binlogs
capacity : 20000000
min_seq : 1
max_seq : 69
replication
client 192.168.3.200:46991
type : mirror
status : SYNC
last_seq : 69
replication
slaveof 192.168.3.200:8888
id : node1
type : mirror
status : SYNC
last_seq : 72
copy_count : 0
sync_count : 0
serv_key_range
kv : "" - ""
hash: "" - ""
zset: "" - ""
list: "" - ""
data_key_range
kv : "address" - "salary"
hash: "" - ""
zset: "" - ""
list: "" - ""
leveldb.stats
Compactions
Level Files Size(MB) Time(sec) Read(MB) Write(MB)
--------------------------------------------------
0 1 0 0 0 0

5、监控工具的使用

php文件上传到 /var/www/html/phpssdbadmin 目录
1、lnmp架构的方法
# yum -y install php php-mysql nginx php-gd* php-mcrypt
# vim /etc/nginx/nginx.conf
location /phpssdbadmin {
try_files $uri $uri/ /phpssdbadmin/index.php?$args;
}
index index.php;
root /var/www/html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
} 2、lamp架构的方法
# yum install -y httpd php php-gd*
# vim /etc/httpd/conf/httpd.conf #打开rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride All #修改为All
</Directory> <Directory "/var/www/html">
Order allow,deny
Allow from all
AllowOverride All #修改为All
</Directory>
# cat phpssdbadmin/.htaccess #.htaccess内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /var/www/html/phpssdbadmin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /phpssdbadmin/index.php [L]
</IfModule> 3、登录

文件缓存tmpfs + 数据缓存SSDB(一)的更多相关文章

  1. thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

    // 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTM ...

  2. 我用ASP.NET缓存之数据缓存

    [我的理解] Cache,是内置的对象集合.是全局的,类似于static Arraylist.它是线程安全的,添加或修改Cache中的项目时,不需要锁定或者解除Cache. 添加 Cache[Key] ...

  3. YII缓存之数据缓存

    1.开启缓存组件 2. ================ 二 先在配置文件components数组中加上: 'cache'=>array( 'class'=>'CFileCache'), ...

  4. asp.net 页面缓存、数据缓存

    页面缓存,webform框架的aspx页面,服务器引擎生成的页面可以被缓存.

  5. 数据缓存iOS

    有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造成以下问题 (1)用户流量的浪费(2)程序响应速度不够快 解决上 ...

  6. 玩转iOS开发 - 数据缓存

    Why Cache 有时候.对同一个URL请求多次,返回的数据可能都是一样的,比方server上的某张图片.不管下载多少次,返回的数据都是一样的. 上面的情况会造成下面问题 (1)用户流量的浪费 (2 ...

  7. 我用ASP.NET缓存之SQL数据缓存依赖(SqlCacheDependency)

    [名词解释] 缓存(Cache)依赖,大白话解释就是缓存是否更新依赖于其它Object.那么SqlCacheDependency指的就是Cache的数据更新依赖于SQL Server数据库表的变化(  ...

  8. thinkphp 数据缓存

    在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如: 缓存初始化 // 缓存初始化 S(array('type'=>' ...

  9. jQuery源代码学习之六——jQuery数据缓存Data

    一.jQuery数据缓存基本原理 jQuery数据缓存就两个全局Data对象,data_user以及data_priv; 这两个对象分别用于缓存用户自定义数据和内部数据: 以data_user为例,所 ...

随机推荐

  1. BI工具的选择标准有哪些?

    作为企业的IT部门如果没有良好的BI工具支持,IT部门将会十分容易陷入困境.那么面对多元化的BI工具市场,IT部门如何选择BI工具呢?BI工具选择的标准又是什么?Smartbi将为大家做一个简单的解答 ...

  2. 实力再获认可!Smartbi入选爱分析·产业数字化厂商全景报告

    近日,中国独立的第三方产业数字化研究与咨询机构--爱分析发布<2021爱分析·产业数字化厂商全景报告>.思迈特软件凭借优秀的解决方案能力及丰富的业务实践经验,入选报告中银行数字化.保险数字 ...

  3. javaScript(js)手写原生任务定时器源码

    javaScript(js)手写原生任务定时器 功能介绍 定时器顾名思义就是在某个特定的时间去执行一些任务,现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务 ...

  4. 019 Linux tcpdump 抓包案例入门可真简单啊?

    目录 1 tcpdump 是什么? 2 tcpdump 常用命令参数 3 tcpdump 抓包wss,配合Wireshark分析 4 tcpdump 抓包白度,配合Wireshark分析) 5 tcp ...

  5. 分布式多线程 EOFError: Ran out of input

    原因: 在将Queue注册到网上的时候,callable参数使用了lambda匿名函数,而Windows下绑定调用接口不能用lambda QueueManager.register('get_task ...

  6. SyntaxError: keyword can't be an expression

    创建字典对象时: D1=dict('name'='Bob','age'=20,'score'=90) SyntaxError: keyword can't be an expression 解决方法: ...

  7. JZ-007-斐波那契数列

    斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1). n<=39 题目链接: 斐波那契数列 代码 publi ...

  8. 【故障公告】龙卷风来袭:突增的并发请求,撑不住的CPU

    (上图是数据库连接数监控图) 非常抱歉,今天下午 16:50-17:40 期间,一场龙卷风突袭园子,突增的并发请求狂卷博客站点的 pod,由于风力巨大(70%左右的增量),pod 的 cpu 不堪重负 ...

  9. 记一次CentOS根目录空间占满的解决方案

    问题背景是这样的,根目录初始大小是50G,我把mysql和docker都装在根目录底下了. 随着时间推移,mysql大小达到了27个G,docker则是22个G 根目录空间不够用了,上图: 图 1-1 ...

  10. yum 安装时报错 Existing lock /var/run/yum.pid: another copy is running as pid 3192.

    yum 安装时报错 由于yum的时候意外退出造成的,虽然也给出提示当前占用进行的id,但是执行kill -9  强制杀死进程后,情况没能改变. 解决方法:rm -f /var/run/yum.pid然 ...