相关疑难解决方法(0)

memcached的替代品,可以持久存储到磁盘

我目前正在使用memcached和我的java应用程序,总的来说它工作得很好.

对我来说最重要的memcached的功能是:

  • 它很快,因为读取和写入都在内存中而不会触及磁盘
  • 它只是一个键/值存储(因为这是我所有的应用程序需求)
  • 它是分布式的
  • 它通过让每个对象只在一台服务器上运行来有效地使用内存
  • 它不假设对象来自数据库(因为我的对象不是数据库对象)

但是,有一件事我想做,memcached无法做到.我想定期(可能每天一次)将缓存内容保存到磁盘.我希望能够从保存的磁盘映像中恢复缓存.

磁盘保存不需要非常复杂.如果在保存期间添加了新的键/值,我不在乎它是否包含在保存中.如果在保存发生时修改了现有的键/值,则保存的值应该是旧值或新值,但我不关心哪一个.

任何人都可以推荐另一种缓存解决方案(免费或商业),它具有对我很重要的所有(或很大一部分)memcached功能,并且还允许从磁盘保存和恢复整个缓存?

java memcached persistence distributed caching

51
推荐指数
4
解决办法
3万
查看次数

服务器重启时如何在节点js中维护持久会话?

到目前为止,我研究了stackoverflow关于在服务器重启后使会话持久化的答案.

我考虑用我的平均应用程序有4种可能的方式.

  1. Cookie的会话 https://www.npmjs.com/package/cookie-session
  2. 使用Json网络令牌(JWT)https://www.npmjs.com/package/jsonwebtoken
  3. 使用connect-mongo/connect-redis
  4. passport.js

现在我的疑问是,我是否会在mongo和redis中重启我的服务器.会话仍然在那里,因为它们是外部数据存储.但是如何使用JWT和cookie会话使我的会话持久化.这些会话变量存储在何处.

在passport.js的情况下,我遇到的解决方案是使会话持久化是将会话数据存储在connect-mongo/connect-redis中.

护照中有没有其他方法可以使会话持续存在?

session redis node.js express passport.js

10
推荐指数
1
解决办法
4240
查看次数

memcached中的ZF2身份验证会话存储

在我们的Intranet应用程序中,我们使用SSO(单点登录)登录,而客户端和auth源应用程序上的会话都存储在memcached中.

会话设置为在垃圾收集器可能将其视为删除之前的12小时.两个应用程序都是使用ZF2编写的.

不幸的是,问题是,在一段时间后(我没有确切的值),浏览器会丢失导致重定向到auth origin的会话,其中会话仍处于活动状态,因此用户被重定向回客户端并且浏览器会话刷新.如果用户没有未保存的工作,这不是什么大问题,因为这两个重定向在1秒内发生,用户甚至可能没有注意到它们.

但是当用户有未保存的工作时,它确实是一个大问题,即使尝试保存它也会导致重定向,工作也就消失了.

以下是会话的配置Bootstrap.php:

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        // ...
        $serviceManager      = $e->getApplication()->getServiceManager();
        $sessionManager      = $serviceManager->get('session_manager_memcached');
        $sessionManager->start();
        Container::setDefaultManager($sessionManager);
        // ...
    }

    public function getServiceConfig()
    {
        return array(
            'factories' => array(
                // ...
                'session_manager_memcached' => function ($sm) {
                    $systemConfig = $sm->get('config');
                    $config = new SessionConfig;
                    $config->setOptions(array(
                        'phpSaveHandler' => 'memcache',
                        'savePath' => 'tcp://localhost:11211?timeout=1&retry_interval=15&persistent=1',
                        'cookie_httponly' => true,
                        'use_only_cookies' => true,
                        'cookie_lifetime' => 0,
                        'gc_maxlifetime' => 43200, // 12h
                        'remember_me_seconds' => 43200 // 12h
                    ));
                    return …
Run Code Online (Sandbox Code Playgroud)

php authentication session memcached zend-framework2

9
推荐指数
1
解决办法
1248
查看次数