深入研究memcache

特性和限制
1、Memcached 单进程最大使用内存为2G,要使用更多内存,可以分多个端口,开启多个Memcached进程
2、最大30天的数据过期时间,设置为永久的也会在这个时间过期, 常量REALTIME_MAXDELTA 60*60*24*30控制
3、最大键长为250字节,大于该长度无法存储,常量KEY_MAX_LENGTH 250控制
4、单个item最大数据是1MB,超过1MB数据不予存储,常量POWER_BLOCK 1048576进行控制,它是默认的slab大小
5、最大同时连接数是200,通过 conn_init()中的freetotal进行控制,
6、最大软连接数是1024,通过settings.maxconns=1024 进行控制
7、跟空间占用相关的参数:settings.factor=1.25, settings.chunk_size=48, 影响slab的数据占用和步进方式 继续阅读“深入研究memcache”

多行文本溢出显示省略号(…) text-overflow: ellipsis

text-overflow 属性规定当文本溢出包含元素时发生的事情。

默认值:  clip
继承性:  no
版本:  CSS3
JavaScript 语法:  object .style.textOverflow="ellipsis"
语法: text-overflow: clip|ellipsis| string ;

然而,text-overflow:ellipsis; 不可独立使用,必须结合overflow:hidden;  white-space:nowrap;才生效。但是而white-space:nowrap; 是指不换行,就是说只能一行显示。如果我们想要实现多行的情况下,在最后一行的最后用“…”来表示,则可以: 继续阅读“多行文本溢出显示省略号(…) text-overflow: ellipsis”

JavaScript 常用功能总结

目录:
众所周知,JavaScript是动态的面向对象的编程语言,能够实现以下效果:
1. 丰富Web 网页功能
2. 丰富Web界面
3. 实现本地或远程存储。
4. 实现分布式网络应用的前端组件,并在后台进行数据存储管理。
5. 使用JavaScript可以实现完整的分布式Web 应用。

JavaScript 中的数据类型
JavaScript 提供三种元数据类型,string,number,和Boolean,可使用typeof(v) 测试变量V 的类型,typeof(v)===”number”
提供五种基本的引用类型:Object, Array, Function, Date 及RegExp。数组,函数,日期和正则表达式是特殊类型,但是严格来讲,日期和正则表达式是元数据类型,可封装在其他对象中。
JS 中变量类型,数组元素类型,函数参数以及返回值的类型不需要声明类型,类型之间的转换是自动执行的。 继续阅读“JavaScript 常用功能总结”

移动端样式小技巧

本文只针对两大手机阵营 Android和IOS 中的魅蓝metal 和 iPhone6进行样式对比。

一、line-height
line-height经常用于文字居中,当然也有小伙伴会用上下padding去写.but!不管你用padding还是line-height,不同手机显示效果还是…不一样。
一般会这样写:

.demo{
height:16px;
line-height:14px;
font-size:9px;
border:1px solid #ff6815;
}

嗯,在我们的chrome由于字体小于9px已经看不出边框和字之间的间隙了,再来看看Android和IOS的
魅蓝文字已经飞起~, ios正常显示
如果把line-height加1px,iPhone文字就会下移,由于我们app的ios用户居多,并且android机型太多,不同机型也会显示不同,所以只能退而求其次了。
line-height的兼容问题不太好解决,容器高度越小,显示效果的差距越明显。稍微大一点的高度,最好把line-height设置为高度+1px,两个平台显示都还不错。 继续阅读“移动端样式小技巧”

Nginx配置文件详细说明

在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.

#运行用户
user www-data;
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;

#全局错误日志及PID文件
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

#工作模式及连接数上限
events {
use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections  1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}

继续阅读“Nginx配置文件详细说明”

Redis容量及使用规划

在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。
(本文主要讨论Redis未启用VM支持情况)

1. Schema
MySQL: 需事先设计
Memcached: 无需设计
Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划

数据项: value保存的内容是什么,如用户资料
Redis数据类型: 如String, List
数据大小: 如100字节
记录数: 如100万条(决定是否需要拆分)
⋯⋯
上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis服务器有容量限制,数据容量不能超出物理内存大小,同时考虑到业务数据的可扩充性,记录数会持续增多、单条记录的内容也都会增长,因此需要提前规划好容量,数据架构师就是通过schema来判断当前业务的Redis是否需要“分库分表”以满足可扩展需求。 继续阅读“Redis容量及使用规划”

Redis和Memcache的区别分析  

1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3. Redis支持数据的备份,即master-slave模式的数据备份。
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存

来看下Redis作者对比redis和memcache 继续阅读“Redis和Memcache的区别分析  ”

UltraEdit中检查php语法是否正确

可以直接在UltraEdit中檢查php語法是否正確的設定
很好用的東東
記下來免得又忘了:Advanced–>Tool Configuration 按Insert

[Command]
Manu Item Name: PHP syntax Check
(PHP5)
Command Line: C:\php\php-win.exe -l -f %F
Working Directory: C:\php\

[Options]
Program Type: Dos program
v Save active File

[Output]
Command Output: Output to List Box
v Capture Output
Replace select text with: No Replace

設到這樣就已經可以用了 继续阅读“UltraEdit中检查php语法是否正确”

#1146 – Table 'performance_schema.session_variables' doesn't exist

一下子从Mysql5.1 手动升级到5.7.9,然后用Navicat进行查询时,却提示错误:
Table ‘performance_schema.session_variables’ doesn’t exist
因为我是使用压缩包直接解压替换的,想想可能是升级中出的问题,于是度娘一下,发现很多类似的情况,但解决方法都是都回到旧版本,然后再用mysqldump导出,再到新版本里解压,费时也不方便。

我忽然想到以前出现个类似的情况,Mysql的Bin目录的下工具:mysql_upgrade.exe

于是就抱着试试的心态在命令行下执行:

mysql_upgrade -uroot -p

执行一切顺利:
……
Repairing tables
mysql.proxies_priv                                 OK
Upgrade process completed successfully.
Checking if update is needed.

然后重启mysql服务,再次进入,果然一切都正常了,哈!

php5.5下配置imagick

首先上http://pecl.php.net/package/imagick下载对应的版本,我这里下载的是:
php_imagick-3.4.0rc4-5.5-ts-vc11-x64

然后去http://windows.php.net/downloads/pecl/deps/下载对应的imageMagick,我下载的是
ImageMagick-6.9.1-2-vc11-x64.zip

解压php_imagick-3.4.0rc4-5.5-ts-vc11-x64.zip里的php_imagick.dll到PHP的ext目录下
解压ImageMagick-6.9.1-2-vc11-x64.zip里BIN目录下:
CORE_RL_XXXX.dll文件到D:\AMP\imagick下
IM_MOD_RL_XXXX.dll文件到D:\AMP\imagick\coders目录下

设置系统环境变量:
path=D:\AMP\imagick
MAGICK_HOME=D:\AMP\imagick\coders

在php.ini里启用imagcik
extension=php_imagick.dll