一、文件缓存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. 3款自助型BI分析平台功能盘点,帮助你预测商业发展方向

    在快速发展的今天,商业智能BI已经不同于传统的商业智能BI,商业智能BI已经逐渐转变为自助和业务主导的模式,自助BI分析平台应运而生,自助BI分析平台逐渐成为许多企业的选择. 自助式BI分析平台与传统 ...

  2. C#内联函数 特性 MethodImplOptions.AggressiveInlining)

    [MethodImpl(MethodImplOptions.AggressiveInlining)] 内联函数 Impl:implement的缩写 内联函数 在计算机科学中,内联函数(有时称作在线函数 ...

  3. linux-noshell的模式

    转至:https://blog.csdn.net/ifubing/article/details/95509981 noshell 创建两个用户,一个直接创建,一切按默认的来 另一个创建时指定一下no ...

  4. BBS项目(二)

    目录 BBS项目(二) ORM 创建相关表 表模型 修改admin样式 Simple-UI 注册表添加数据 注册forms类编写 注册功能前端搭建 头像实时显示功能实现 BBS项目(二) 可以在本地写 ...

  5. 编写第一个GET、POST接口[renren-fast框架系列(1)]

    配置好 renren-fast 脚手架,学习完 Spring MVC 架构后,我需要具体调试 renren-fast 的接口,比如要新增某个接口. 什么是前后端分离 运行 renren-fast 项目 ...

  6. 如何创建一个 Cocoapods 插件

    原文链接 前言 我们在使用 Cocoapods 过程中,如果发现它未能满足我们的要求该怎么办呢? 最简单的粗暴的办法就是 fork 一份 Cocoapods 源码,然后自己公司内部或者个人直接针对源码 ...

  7. LGP3709题解

    题目大意 简化后为区间众数出现次数,简化前为[数据删除] 吐槽 为什么题解只有一篇分块,剩下的全是莫队? 这题不是蒲公英?这和算导例题有何区别??? 为什么现在的人都喜欢去看题解而不注重思维??? 莫 ...

  8. LGP3346题解

    广义 SAM 比较简单的题/fad 题意:树上所有路径一共能够组成多少个本质不同子串? 并且数据保证最多只有20个叶子节点. 我们先来考虑一下一种特殊情况: 对于路径 \([u,v]\),\(u\) ...

  9. 【1024打卡】C++字符串的输出((c语言风格)

    c++字符串输出(c语言风格) 文章目录 c++字符串输出(c语言风格) 杂记 代码 杂记 今天程序设计竞赛白给了,果然还是太弱了,y总带带我TAT ┭┮﹏┭┮1024快乐 代码 c语言学习 #inc ...

  10. ArcMap操作随记(11)

    1.直方图 在[Spatial Analyst]工具条中 2.分辨率变换 [重采样] :①最近邻法 ②双线性 ③三次卷积 重采样过程中要注意Nodata值 3.用ArcGIS进行监督分类 [影像分类] ...