Use strictredis if sentinel_master_id is not null
Also, use only a redis_host and redis_port attributes either if the connection is to redis or to sentinel
This commit is contained in:
committed by
Mario de Frutos
parent
472d8c2360
commit
6c5b1b4e99
@@ -2,10 +2,9 @@
|
|||||||
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION
|
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||||
\echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
|
\echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
|
||||||
CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
|
CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
|
||||||
sentinel_host text,
|
|
||||||
sentinel_port int,
|
|
||||||
sentinel_master_id text,
|
sentinel_master_id text,
|
||||||
redis_host text,
|
redis_host text,
|
||||||
|
redis_port int,
|
||||||
redis_db text,
|
redis_db text,
|
||||||
timeout float
|
timeout float
|
||||||
);
|
);
|
||||||
@@ -21,10 +20,9 @@ RETURNS cdb_dataservices_server._redis_conf_params AS $$
|
|||||||
import json
|
import json
|
||||||
params = json.loads(conf)
|
params = json.loads(conf)
|
||||||
return {
|
return {
|
||||||
"sentinel_host": params['sentinel_host'],
|
|
||||||
"sentinel_port": params['sentinel_port'],
|
|
||||||
"sentinel_master_id": params['sentinel_master_id'],
|
"sentinel_master_id": params['sentinel_master_id'],
|
||||||
"redis_host": params['redis_host'],
|
"redis_host": params['redis_host'],
|
||||||
|
"redis_port": params['redis_port'],
|
||||||
"timeout": params['timeout'],
|
"timeout": params['timeout'],
|
||||||
"redis_db": params['redis_db']
|
"redis_db": params['redis_db']
|
||||||
}
|
}
|
||||||
@@ -38,22 +36,20 @@ RETURNS boolean AS $$
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
from cartodb_services.tools import RedisConnection
|
from cartodb_services.tools import RedisConnection
|
||||||
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
|
metadata_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host,
|
||||||
c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db
|
c.redis_port, c.timeout, c.redis_db
|
||||||
from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
|
from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
|
||||||
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
|
metrics_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host,
|
||||||
c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db
|
c.redis_port, c.timeout, c.redis_db
|
||||||
from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
|
from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
|
||||||
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
|
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_master_id'],
|
||||||
metadata_config_params['sentinel_port'],
|
|
||||||
metadata_config_params['sentinel_master_id'],
|
|
||||||
metadata_config_params['redis_host'],
|
metadata_config_params['redis_host'],
|
||||||
|
metadata_config_params['redis_port'],
|
||||||
timeout=metadata_config_params['timeout'],
|
timeout=metadata_config_params['timeout'],
|
||||||
redis_db=metadata_config_params['redis_db']).redis_connection()
|
redis_db=metadata_config_params['redis_db']).redis_connection()
|
||||||
redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_host'],
|
redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_master_id'],
|
||||||
metrics_config_params['sentinel_port'],
|
|
||||||
metrics_config_params['sentinel_master_id'],
|
|
||||||
metrics_config_params['redis_host'],
|
metrics_config_params['redis_host'],
|
||||||
|
metrics_config_params['redis_port'],
|
||||||
timeout=metrics_config_params['timeout'],
|
timeout=metrics_config_params['timeout'],
|
||||||
redis_db=metrics_config_params['redis_db']).redis_connection()
|
redis_db=metrics_config_params['redis_db']).redis_connection()
|
||||||
GD[cache_key] = {
|
GD[cache_key] = {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
|
CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
|
||||||
sentinel_host text,
|
|
||||||
sentinel_port int,
|
|
||||||
sentinel_master_id text,
|
sentinel_master_id text,
|
||||||
redis_host text,
|
redis_host text,
|
||||||
|
redis_port int,
|
||||||
redis_db text,
|
redis_db text,
|
||||||
timeout float
|
timeout float
|
||||||
);
|
);
|
||||||
@@ -18,10 +17,9 @@ RETURNS cdb_dataservices_server._redis_conf_params AS $$
|
|||||||
import json
|
import json
|
||||||
params = json.loads(conf)
|
params = json.loads(conf)
|
||||||
return {
|
return {
|
||||||
"sentinel_host": params['sentinel_host'],
|
|
||||||
"sentinel_port": params['sentinel_port'],
|
|
||||||
"sentinel_master_id": params['sentinel_master_id'],
|
"sentinel_master_id": params['sentinel_master_id'],
|
||||||
"redis_host": params['redis_host'],
|
"redis_host": params['redis_host'],
|
||||||
|
"redis_port": params['redis_port'],
|
||||||
"timeout": params['timeout'],
|
"timeout": params['timeout'],
|
||||||
"redis_db": params['redis_db']
|
"redis_db": params['redis_db']
|
||||||
}
|
}
|
||||||
@@ -35,22 +33,20 @@ RETURNS boolean AS $$
|
|||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
from cartodb_services.tools import RedisConnection
|
from cartodb_services.tools import RedisConnection
|
||||||
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
|
metadata_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host,
|
||||||
c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db
|
c.redis_port, c.timeout, c.redis_db
|
||||||
from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
|
from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
|
||||||
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
|
metrics_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host,
|
||||||
c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db
|
c.redis_port, c.timeout, c.redis_db
|
||||||
from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
|
from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
|
||||||
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
|
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_master_id'],
|
||||||
metadata_config_params['sentinel_port'],
|
|
||||||
metadata_config_params['sentinel_master_id'],
|
|
||||||
metadata_config_params['redis_host'],
|
metadata_config_params['redis_host'],
|
||||||
|
metadata_config_params['redis_port'],
|
||||||
timeout=metadata_config_params['timeout'],
|
timeout=metadata_config_params['timeout'],
|
||||||
redis_db=metadata_config_params['redis_db']).redis_connection()
|
redis_db=metadata_config_params['redis_db']).redis_connection()
|
||||||
redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_host'],
|
redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_master_id'],
|
||||||
metrics_config_params['sentinel_port'],
|
|
||||||
metrics_config_params['sentinel_master_id'],
|
|
||||||
metrics_config_params['redis_host'],
|
metrics_config_params['redis_host'],
|
||||||
|
metrics_config_params['redis_port'],
|
||||||
timeout=metrics_config_params['timeout'],
|
timeout=metrics_config_params['timeout'],
|
||||||
redis_db=metrics_config_params['redis_db']).redis_connection()
|
redis_db=metrics_config_params['redis_db']).redis_connection()
|
||||||
GD[cache_key] = {
|
GD[cache_key] = {
|
||||||
|
|||||||
@@ -6,28 +6,26 @@ class RedisConnection:
|
|||||||
|
|
||||||
REDIS_DEFAULT_USER_DB = 5
|
REDIS_DEFAULT_USER_DB = 5
|
||||||
REDIS_DEFAULT_TIMEOUT = 2 #seconds
|
REDIS_DEFAULT_TIMEOUT = 2 #seconds
|
||||||
REDIS_SENTINEL_DEFAULT_PORT = 26379
|
#REDIS_SENTINEL_DEFAULT_PORT = 26379
|
||||||
REDIS_DEFAULT_PORT = 6379
|
#REDIS_DEFAULT_PORT = 6379
|
||||||
|
|
||||||
def __init__(self, sentinel_host, sentinel_port, sentinel_master_id,
|
def __init__(self, sentinel_master_id, redis_host, redis_port,
|
||||||
redis_host, redis_db=REDIS_DEFAULT_USER_DB, **kwargs):
|
redis_db=REDIS_DEFAULT_USER_DB, **kwargs):
|
||||||
self.sentinel_host = sentinel_host
|
|
||||||
self.sentinel_port = sentinel_port
|
|
||||||
self.sentinel_master_id = sentinel_master_id
|
|
||||||
self.redis_host = redis_host
|
self.redis_host = redis_host
|
||||||
|
self.redis_port = redis_port
|
||||||
|
self.sentinel_master_id = sentinel_master_id
|
||||||
self.timeout = kwargs['timeout'] if 'timeout' in kwargs else self.REDIS_DEFAULT_TIMEOUT
|
self.timeout = kwargs['timeout'] if 'timeout' in kwargs else self.REDIS_DEFAULT_TIMEOUT
|
||||||
self.redis_db = redis_db
|
self.redis_db = redis_db
|
||||||
self.redis_port = self.REDIS_DEFAULT_PORT
|
|
||||||
|
|
||||||
def redis_connection(self):
|
def redis_connection(self):
|
||||||
return self.__create_redis_connection()
|
return self.__create_redis_connection()
|
||||||
|
|
||||||
def __create_redis_connection(self):
|
def __create_redis_connection(self):
|
||||||
if (self.sentinel_host == None) or (self.sentinel_master_id == None):
|
if self.sentinel_master_id == None:
|
||||||
return StrictRedis(host=self.redis_host, port=self.redis_port, db=self.redis_db)
|
return StrictRedis(host=self.redis_host, port=self.redis_port, db=self.redis_db)
|
||||||
else:
|
else:
|
||||||
sentinel = Sentinel([(self.sentinel_host,
|
sentinel = Sentinel([(self.redis_host,
|
||||||
self.REDIS_SENTINEL_DEFAULT_PORT)],
|
self.redis_port)],
|
||||||
socket_timeout=self.timeout)
|
socket_timeout=self.timeout)
|
||||||
return sentinel.master_for(
|
return sentinel.master_for(
|
||||||
self.sentinel_master_id,
|
self.sentinel_master_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user