11、memcached的cache机制是怎样的?

Memcached主要的cache机制是LRU(最近最少用)算法+超时失效。当您存数据到memcached中,可以指定该数据在缓存中可以呆多久Which is forever, or some time in the

future。如果memcached的内存不够用了,过期的slabs会优先被替换,接着就轮到最老的未被使用的slabs。

12、memcached如何实现冗余机制?

不实现!Memcached应该是应用的缓存层,从设计本身来京就不带有任何冗余机制。如果一个memcached节点失去了所有数据,应该可以从数据源(比如数据库)再次获取到数据。应

用系统应该可以容忍节点的失效。如果担心节点失效会大大加重数据库的负担,那么可以采取一些办法。比如您可以增加更多的节点(来减少丢失一个节点的影响),热备节点(在其他节

点down了的时候接管IP)等等。

Read More →

1、memcached的基本设置
1)启动Memcache的服务器端
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

Read More →

今天有运营同事反馈在使用一个内部的运营工具时,有些操作失败,后来抓包发现,post到服务端的数据是正常的,在服务端接受到的数据却并不完整,有缺失。很是奇怪。看了下nginx的error log,发现问题所在了,原来是php有设置最大接受变量个数

所以,需要做的就是修改下php.ini中的设置:max_input_vars ,默认没有开启,默认值是1000,修改为自己合适的值,就可以了。

一、扩展自己的类

在app/ 下建立目录 libraries\class

然后myTest.php 类名格式 驼峰 myTest

复制代码 代码如下:
<?php
class myTest
{
public  function test()
{
return ’1asdasd111′;
}
}

在 app/start/global.php

复制代码 代码如下:
ClassLoader::addDirectories(array(
app_path().’/commands’,
app_path().’/controllers’,
app_path().’/models’,
app_path().’/database/seeds’,
app_path().’/libraries/class’, //增加这一段
));
用 make 载入
复制代码 代码如下:
<?php
class HomeController extends BaseController {
protected $layout = ‘layouts.main’;
public function index()
{
$a = App::make(‘mytest’); // 用法
echo $a->test();
}
}

二、扩展自己的函数

在app/ 下建立目录 libraries\function

建立helper.php

函数格式,如下用function_exists,防止与系统重名
复制代码 代码如下:
if (! function_exists(‘test2′))
{
function test2()
{
echo 2222222222222222;
}
}

方法一:

在 app/filters.php
复制代码 代码如下:
App::before(function($request)
{
require app_path().’/libraries/function/helper.php’; //载入 自定义函数
});

方法二:

在app/bootstrap/autolad.php

复制代码 代码如下:
require __DIR__.’/../app/functions.php’; // 引入自定义函数库

我感觉方法一会比较好。