Lucce 5.4 and 6 issues Redis extension

Hi All,

We are currently looking to upgrade an application from Lucee 5.3 to Lucee 6 and whilst everything is working on our staging site fine, it is very slow. We have narrowed this down to any instance of cacheGet() being used. Each time it is used it is taking about 1 second (timed with cftimer), e.g.:

<cftimer label="CacheGet Time" type="outline">
    #cacheGet(object_cachekey)#
</cftimer>

This gives a value in the output of about 1000ms (+/- 10ms).

I’ve tried it on my development set-up as well and can replicate the results.

As we are going from 5.3.x to 6.0.x I thought I would try 5.4.x as well and this was even worse. In 5.4.x all cacheGet() requests return null but a cacheKeyExists() request for the same key returns true:

dump(cacheKeyExists( home_page_data_cachekey ));
dump(cacheGet(home_page_data_cachekey));
abort;

Which outputs this:

test

If I go back to the Lucee 5.3.x and run the same test with the CFTimer I get a time of 0ms for the cacheGet() request and it returns data, unlike in 5.4.x where I get null or 6.0.x which takes about 1 second (as described above)

In all versions of Lucee, we are using the Redis extension version 3.0.0.51, however, I have also tried the latest snapshot, 3.0.0.56-SNAPSHOT but I get the same results as above on 5.4.x and 6.0.x.

We are using CommandBox on Docker and the Lucee versions I’ve tried have been 6.0.1.83, 5.4.5.23 and 5.3.12.1.

We have the Redis connection specified in the Application.cfc as follows:

	this.cache.connections["site-cache"] = {
		class: 'lucee.extension.io.cache.redis.simple.RedisCache'
		, bundleName: 'redis.extension'
		, bundleVersion: redisversion
		, storage: false
		, custom: {
			"secretKey":"",
			"minIdle":"0",
			"secretName":"",
			"maxTotal":"24",
			"maxIdle":"8",
			"maxLowPriority":"0",
			"host": redishost,
			"accessKeyId":"",
			"password":"",
			"idleTimeout":"300000",
			"liveTimeout":"3600000",
			"region":"",
			"port":"6379",
			"timeToLiveSeconds":"0",
			"socketTimeout":"2000",
			"username":"",
			"connectionTimeout":"5000"
		}
		, default: 'object'
	};

Any idea why the Redis extension on Lucee 5.4 and 6 is essentially broken? Do I need to change something in the above definition? On 5.3 we have never had any issues.

Thanks.