关于memcached缓存的php扩展memcache和memcached的区别

服务端:memcached (内存缓存的服务)

php连接服务端的memcached可以通过 memcachememcached (memcached支持的方法要更多一些)

注意一下,memcache和memcached是两个不同的扩展连接方式。
memcache     是基于pecl库实现php对memcached的连接。
memcached  是基于libmemcached库实现连接。

libmemcached的安装方式:

1、安装libmemcached (官方地址:http://libmemcached.org)
2、安装memcached(这里的memcached是指php扩展,不是指服务端的memcached,名字一样而已)

下载并安装 libmemcached 库,地址 https://launchpad.net/libmemcached/+download
目前最新版本为:libmemcached-1.0.18.tar.gz
解压…略
经典三部曲“`
./configure && make && make install
默认会安装到:/usr/local/lib

下载memcached:
去php官网 http://pecl.php.net/index.php  搜索 memcached


根据搜索结果,点进去,找最新的稳定版本:
http://pecl.php.net/get/memcached-2.2.0.tgz
解压…略

[root@localhost memcached-2.2.0]# phpize
[root@localhost memcached-2.2.0]# ./configure --disable-memcached-sasl
[root@localhost memcached-2.2.0]# make && make install
Installing shared extensions: /usr/lib64/php/modules/

[root@localhost ~]# ll /usr/lib64/php/modules/
total 2552
-rwxr-xr-x 1 root root 66096 Jul 10 01:43 curl.so
-rwxr-xr-x 1 root root 1843120 Jul 10 01:43 fileinfo.so
-rwxr-xr-x 1 root root 36200 Jul 10 01:43 json.so
-rwxr-xr-x 1 root root 314455 Jan 7 17:29 memcached.so
-rwxr-xr-x 1 root root 261392 Jul 10 01:43 phar.so
-rwxr-xr-x 1 root root 83088 Jul 10 01:43 zip.so

编辑php配置文件添加php扩展路径及加载模块:
extension_dir = “/usr/lib64/php/modules/”
extension = memcached.so

重启apache,通过php的phpinfo()函数查看。

mysql使用order by自定义排序

原表 user:

id name roleId
1 aaa 1
2 bbb 2
3 ccc 3
4 ddd 4
5 eee 5

1、MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、4,如遇到null或者不在列表中的数据则返回0.

例如:select * from user order by field(roleId,2,3,4,1,5);

结果:

id name roleId
2 bbb 2
3 ccc 3
4 ddd 4
1 aaa 1
5 eee 5

2、locate(substr,str)函数返回子串substr在字符串str中第一次出现的位置,可以根据该函数进行排序

例如:select * from user order by locate(id,’2,3,1,5,4′);

结果:

id name roleId
2 bbb 2
3 ccc 3
1 aaa 1
5 eee 5
4 ddd 4