Currently we are exploring Redis as distributed in-mem cache which would be hosted on AWS via Amazon elasticache.
For Redis cluster connection from application, we are using Jedis client.
What are the cache property settings supported from client side?
org.springframework.data.redis.cache.RedisCacheConfiguration does not give much options other than TTL(time-to-live). IS there any other way to set more cache properties from client-side like enabling ssl, memory size etc.?
Related
Apache Ignite is currently creating multiple connections to the persistent store (Mongo). Is there a way to configure the cache's to use the same Mongo connection instead of spawning new ones?
I have looked through the documentation and api's but was not able to find ways to configure the way connections to stores are made.
I have a application using Redis. This system implemented with java spring used jedis package for connection to the redis with the configuration as follow
jedis.pool.host=redisServer-IP
so the application connect to redis server on the redisServer-IP and works fine but, for the lack of memory on a single server and and HA capability I need to use a redis cluster I used docker compose to create a redis cluster using the here.
Also redis cluster working fine with three masters and three replicas.
I just need to understand, the Redis Cluster can work with the single endpoint, because I can only set single endpoint in the above jedis.pool.host configuration, or I need to have a proxy to deal with the redis cluster ?
NOTE: I can not make any changes in my application
is it possible to change the TTL property of Redis cache during the runtime if the same property has been changed in app config server? is there a way to automate the process to refresh the Redis instance properties during runtime on the event of config server change?
If you want to get the latest property in Config Server, it is recommended to do it through the client polling method, which can be found at
https://learn.microsoft.com/en-us/azure/spring-apps/how-to-config-server#config-server-refresh
Regarding the load to Redis instances, you may need to write some code to send out the event.
I'm developing a webservice on IBM Bluemix with Liberty for Java and Cloudant and I have to cache some data in memory.
The auto-scaling component creates new instances of my application and I would a shared cache between instances.
Is there a sort of Memcache in IBM Bluemix like in Google Cloud?
Have you looked at Redis:
https://console.bluemix.net/catalog/services/databases-for-redis or https://console.bluemix.net/catalog/services/compose-for-redis ? That should sort out your inmemory store needs.
I am trying to deploy a spring-security server, with Redis as token store.
In order to have some redundancy in Redis, we want to deploy it as a cluster.
The problem is Jedis, which is used by spring security as underlying library, doesn't support pipelining in cluster mode, but spring security uses pipelining.
My question is how can I solve this situation. More precisely:
1- Should I use another mode of deployment form Redis? What actually works.
2- Can I somehow force spring security to use reddison for connecting to Resid?
Please adivse.
If you want redundancy, use replication (master/slave) not cluster.
If you have more data than RAM on a machine, use cluster.
If you have more data than RAM on a machine and want redundancy, use cluster with replication.
Jedis supports replication with sentinel, so give that a go unless you have a lot of data. Some more info on usage here: https://github.com/xetorthio/jedis/issues/725