Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

PHP और नोड के बीच सत्र साझा करें

नोड के लिए (और एक्सप्रेस 4.x):

एक्सप्रेस-सत्र से उदाहरण के साथ प्रारंभ करें, लेकिन इसके बजाय कनेक्ट-रेडिस को अपने सत्र स्टोर के रूप में उपयोग करें।

उदाहरण कोड:

var express = require('express'),
    app = express(),
    cookieParser = require('cookie-parser'),
    session = require('express-session'),
    RedisStore = require('connect-redis')(session);

app.use(express.static(__dirname + '/public'));
app.use(function(req, res, next) {
  if (req.url.indexOf('favicon') > -1)
    return res.send(404);
  next();
});
app.use(cookieParser());
app.use(session({
  store: new RedisStore({
    // this is the default prefix used by redis-session-php
    prefix: 'session:php:'
  }),
  // use the default PHP session cookie name
  name: 'PHPSESSID',
  secret: 'node.js rules'
}));
app.use(function(req, res, next) {
  req.session.nodejs = 'Hello from node.js!';
  res.send(JSON.stringify(req.session, null, '  '));
});

app.listen(8080);

PHP के लिए:

redis-session-php जैसे redis सत्र हैंडलर का उपयोग करें।

उदाहरण कोड:

<?php

// from https://github.com/TheDeveloper/redis-session-php
require('redis-session-php/redis-session.php');
RedisSession::start();

$_SESSION["php"] = "Hello from PHP";

// `cookie` is needed by express-session to store information
// about the session cookie
if (!isset($_SESSION["cookie"]))
  $_SESSION["cookie"] = array();

var_dump($_SESSION);

?>

नोट:सुनिश्चित करें कि आप एक ही prefix का उपयोग करते हैं (कनेक्ट-रेडिस)/REDIS_SESSION_PREFIX (redis-session-php) (कनेक्ट-रेडिस 'sess:' का उपयोग करता है और redis-session-php डिफ़ॉल्ट रूप से 'session:php:' का उपयोग करता है) और ttl (कनेक्ट-रेडिस)/session.gc_maxlifetime (PHP) (और वही डेटाबेस यदि आप डिफ़ॉल्ट के अलावा किसी अन्य redis डेटाबेस का उपयोग कर रहे हैं) redis-session-php और Connect-redis दोनों के लिए।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस प्रतिकृति और रेडिस शार्डिंग (क्लस्टर) अंतर

  2. मैसकल, रेडिस और मोंगो में एक वितरित लेनदेन को कैसे कार्यान्वित करें

  3. अवधि के बजाय विशेष घंटों में रेडिस कैश कुंजी समाप्त करें

  4. स्प्रिंग-डेटा-रेडिस का उपयोग करके रेडिस मल्टी-एक्सेक को कैसे कार्यान्वित करें

  5. Ingress Nginx नियंत्रक के साथ रेडिस को उजागर करना