小编zza*_*rbi的帖子

PHP会话和memcacheD

大家都知道PHP上有两个memcache扩展:

  • 内存缓存
  • memcached的

您可以将PHP扩展的memcache用作PHP的session_handler,如下所示:

session.save_handler = memcache
session.save_path = "tcp://serv01:11211,tcp://serv02:11211,tcp://serv03:11211"
Run Code Online (Sandbox Code Playgroud)

或者您可以像这样使用memcached:

session.save_handler = memcached
session.save_path = "serv01:11211,serv02:11211,serv03:11211"
Run Code Online (Sandbox Code Playgroud)

但是如何将其他参数设置为memcached,例如:

  • Memcached的:: OPT_DISTRIBUTION
  • Memcached的:: OPT_RETRY_TIMEOUT
  • Memcached的:: OPT_CONNECT_TIMEOUT

在PHP中,我会这样做:

$cache = new Memcached();
$cache->addServer('serv01', 11211);
$cache->addServer('serv02', 11211);
$cache->addServer('serv03', 11211);
$cache->setOption(Memcached::OPT_HASH, Memcached::HASH_MD5);
$cache->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$cache->setOption(Memcached::OPT_CONNECT_TIMEOUT, 150);
$cache->setOption(Memcached::OPT_RETRY_TIMEOUT, 0);
Run Code Online (Sandbox Code Playgroud)

但到目前为止,我还没有找到任何文档或示例,说明如何在session_handler使用这些变量时设置这些变量.

php apache memcached

16
推荐指数
1
解决办法
1万
查看次数

如何使用HIVE对表进行分区?

我已经和Hive玩了几天了但是我仍然很难分区.

我已经在Hadoop中记录了Apache日志(组合格式)几个月.它们以行文本格式存储,按日期划分(通过水槽):/ logs/yyyy/mm/dd/hh/*

例:

/logs/2012/02/10/00/Part01xx (02/10/2012 12:00 am)
/logs/2012/02/10/00/Part02xx
/logs/2012/02/10/13/Part0xxx (02/10/2012 01:00 pm)
Run Code Online (Sandbox Code Playgroud)

组合日志文件中的日期遵循以下格式[10/Feb/2012:00:00:00 -0800]

如何在Hive中使用我的物理分区创建一个带有分区的外部表.我在Hive分区上找不到任何好的文档.我找到了相关问题,例如:

如果我在Hive的外部表中加载我的日志,我就无法分配时间,因为它不是好的格式(Feb <=> 02).即使它的格式良好,我如何将字符串"10/02/2012:00:00:00 -0800"转换为多个目录"/ 2012/02/10/00"?

我最终可以使用pig脚本将原始日志转换为hive表,但此时我应该使用pig而不是hive来进行报告.

hadoop hive mapreduce apache-pig

6
推荐指数
1
解决办法
8832
查看次数

如何通过安装脚本向Magento添加类别?

我实际上可以通过设置脚本添加一个类别,因为某些原因,某些字段没有正确设置.这是我的代码

$this->startSetup();
Mage::register('isSecureArea', 1);

$category = Mage::getModel('catalog/category');
$category->setPath('1/2') // set parent to be root category
    ->setName('Category Name')
    ->setUrlKey('category-name')
    ->setIsActive(0)
    ->setIncludeInMenu(1)
    ->setInfinitescroll(1)
    ->setDisplayMode('PAGE')
    ->setLandingPage($idToCmsBlock)
    ->setPageLayout('anotherLayoutThanDefault')
    ->setCustomUseParentSettings(0)
    ->setCustomLayoutUpdate('<reference name="head"><action method="addCss"><stylesheet>css/somecss.css</stylesheet></action></reference>')
->save();
$this->endSetup();
Run Code Online (Sandbox Code Playgroud)

运行此脚本后,我创建了一个类别,其中包含我在EAVs表中设置的所有值.但是,即使我重新索引平面表,Flat表也会缺少displayMode,landingPage,pageLayout,customLayoutUpdate.

奇怪的是,如果我进入管理员,我可以看到所有这些字段正确设置,但如果我进入我的前端,大多数这些字段都会被忽略.我将不得不去管理员,取消设置这些值并为每个值重置它们以使其正常工作.

另外假设我使用setEnabled(1),我的类别将在管理员中"启用"但不会显示在前端.

PS:我有Flat Category激活,如果我禁用它似乎工作正常,但如果我重新索引它仍然无法正常工作.

php magento

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

php ×2

apache ×1

apache-pig ×1

hadoop ×1

hive ×1

magento ×1

mapreduce ×1

memcached ×1