nosql 非关系型数据库 数据之间无关系,可以随意扩展 数据存储简单,可以存在内存中,无需见表,字段,也可以随时存储自定义格式,
常见的关系型数据库 mysql oracle sqlserver 该数据麻烦。联合查询慢,锁表。 常见的非关系型数据库:nosql 键值数据库:redis,memcached, 适合存储用户信息,riak面向文档数据库:mongoDB 将文件以文档形式存储 couchDB ravenDB列存储数据库:cassandra HBase图数据库:orientDByum -y install memcached libevent libmemcachedmemcached 通过缓存数据库来查询结果 11211 数据存放在内存中,支持的数据类型较少-d 启动一个进程守护-m 是分配给memcache使用的内存数量-u 是运行memcache的用户,如果当前用户为root,需要此参数指定用户-l 监听服务器的ip地址 可以在vi /etc/sysconfig/memcached中的options中指定==options=“-l 127.0.0.1”-p 设置memcache监听的端口-c 设置最大并发的连接数-P 设置保存memcache的pid文件查看memcached的运行状态。memcached-tool 127.0.0.1:11211 statsecho stats |nc 127.0.0.1 11211 需要手工安装ncmemstat --servers=127.0.0.1:11211 vi /etc/sysconfig/memcached下修改以上属性memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid数据不持久性telnet 127.0.0.1 11211 用于测试数据
set get gets replace=cas delete stats items stats+cachedump+slab+数量stats slabs stats sizes stats reset append 在现有的数据之后加 prepend 在现有的数据之前加 flush_all 使已经存在的项目失效cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。时间是永不过期的参数。
gets命令比普通的get命令多返回了一个value值。这个数字可以检查数据是否发生改变。当key对应的数据改变时这个多返回的数字也会改变。 改变现有chunks中的数据stats 查看数据状态
stats items
执行stats items,可以看到STAT items行=slab_id,如果memcached存储内容很多,那么这里也会列出很多的STAT items行stats cachedump slab_id limit_num(0) ‘0’表示显示所有的记录这里slab_id为1,是由2中的stats items返回的结果(STAT items后面的数字)决定的;limit_num看起来好像是返回多少条记录,猜的一点不错, 不过0表示显示出所有记录,而n(n>0)就表示显示n条记录,如果n超过该slab下的所有记录,则结果和0返回的结果一致。append 在现有的缓存数据后添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED
prepend 它的作用是在现有的缓存数据前添加缓存数据
flush_all 它的作用是使已存在的缓存失效语法规则:命令名(set add replace delete)命名 标记 过期时间 大小数据过期方式
Lazy Expiration memcached 内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。 LRU memcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当内存空间不足时(无法从slab class slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。php连接memcached校验
安装memcache模块php连接使用memcached首先需要安装php的memcache扩展可以使用php自带的pecl安装程序# /usr/local/php/bin/pecl install memcache也可以从源码安装 # wget http://www.lishiming.net/data/p_w_upload/forum/memcache-2.2.3.tgz # tar zxf memcache-2.2.3.tgz # cd memcache-2.2.3 # /usr/local/php/bin/phpize 如没有./configure这个项 需安装yum -y install autoconf软件 如yum 安装php没有phpize选项则安装php-devel # ../configure --with-php-config=/usr/local/php/bin/php-config # make && make install安装完后会有类似这样的提示:Installing shared extensions: /usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/把这个记住,然后修改vi /usr/local/php/bin/etc/php.ini,把extension_dir = "./"修改为extension_dir = "/usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/"并添加一行extension="memcache.so"检验# /usr/local/php/bin/php -m测试php脚本wget www.apelearn.com/study_v2/.memcache.txt >1.php 2>/dev/null/usr/local/php/bin/php 1.phpmemcached实现session的共享
1在php.ini中实现session.save_handler="memcache"session.save_path="tcp://127.0.0.1(远端服务器ip):11211"2在apache虚拟配置文件中实现php_value session.save_handler "memcache"php_value session.save_path "tcp://127.0.0.1(远端服务器ip):11211"3在php-ftp.conf对应的pool中添加php-value[session.save_handler]=memcachephp-value[session.save_path]="tcp://127.0.0.1(远端服务器ip):11211"下载测试文件wget http://study.lishiming.net/.mem_se.txt