Skip to content

Commit 63a420f

Browse files
committed
refactor: option for redis/lru or memcached
1 parent 83badd5 commit 63a420f

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

SSRtest/ModifiedReact.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2205,7 +2205,7 @@ var ReactDOMServerRenderer = function () {
22052205
// TODO: type this more strictly:
22062206

22072207

2208-
ReactDOMServerRenderer.prototype.read = async function read(bytes, cache) {
2208+
ReactDOMServerRenderer.prototype.read = async function read(bytes, cache, memLife) {
22092209
// Promisify the get method, which is asynchronous for Redis
22102210
const getAsync = promisify(cache.get).bind(cache);
22112211
let continueLoop = true;
@@ -2281,7 +2281,13 @@ var ReactDOMServerRenderer = function () {
22812281
} while (tagStack.length !== 0);
22822282

22832283
// cache component by slicing 'out'
2284-
cache.set(cacheKey, out.slice(start[cacheKey], tagEnd), 1000, (err) => console.log(err));
2284+
if (memLife) {
2285+
cache.set(cacheKey, out.slice(start[cacheKey], tagEnd), memLife, (err) => {
2286+
if(err) console.log(err)
2287+
});
2288+
} else {
2289+
cache.set(cacheKey, out.slice(start[cacheKey], tagEnd));
2290+
}
22852291
}
22862292
return out;
22872293
};
@@ -2540,9 +2546,10 @@ var ReactDOMServerRenderer = function () {
25402546
* server.
25412547
* See https://reactjs.org/docs/react-dom-server.html#rendertostring
25422548
*/
2543-
async function renderToString(element, cache) {
2549+
async function renderToString(element, cache, memLife=0) {
2550+
// If and only if using memcached, pass the lifetime of your cache entry (in seconds) into 'memLife'.
25442551
var renderer = new ReactDOMServerRenderer(element, false);
2545-
var markup = await renderer.read(Infinity,cache);
2552+
var markup = await renderer.read(Infinity, cache, memLife);
25462553
return markup;
25472554
}
25482555

SSRtest/src/server/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import App from '../shared/App';
99

1010
// can pass in max-size, otherwise defaults to 1 million
1111
// const cache = new ReactCC.ComponentCache();
12-
// import redis from 'redis';
13-
// const cache = redis.createClient();
14-
import memcached from 'memcached';
15-
const cache = new memcached('localhost:11211');
12+
import redis from 'redis';
13+
const cache = redis.createClient();
14+
// import memcached from 'memcached';
15+
// const cache = new memcached('localhost:11211');
1616

1717
/**
1818
* @param clientStats Parameter passed by hot server middleware

0 commit comments

Comments
 (0)