def transfer_to_redis(request):
"""
????????Redis?
"""
success, msg = False, ''
try:
config_data = get_config_redis_json()
logger.debug(config_data)
r = redis.StrictRedis(host=settings.REDIS_HOST, port=settings.REDIS_PORT,
db=settings.REDIS_DB, password=settings.REDIS_PASSWORD)
# ??transaction=True
pipe = r.pipeline(transaction=True)
# ?????????
pattern_delete_lua = """
local keys = redis.call('keys', ARGV[1])
for i = 1, table.getn(keys) do
redis.call('del', keys[i])
end
"""
pattern_delete = r.register_script(pattern_delete_lua)
pattern_delete(keys=[''], args=['%s:*' % settings.CLIENT_CONFIG_REDIS_PREFIX], client=pipe)
for t in config_data:
logger.debug(t)
#
# client = {}
# for k, v in t.iteritems():
# if k != 'endpoints':
# client[k] = v
pipe.set('%s:%s' % (settings.CLIENT_CONFIG_REDIS_PREFIX, t['app_id']), json_dumps(t))
# for s in t['endpoints']:
# pipe.set('%s:%s:%s:%s' % (settings.PROXY_CONFIG_REDIS_PREFIX, t['access_key'], s['name'], s['version']),
# json_dumps(s))
# pipe.delete('config:*')
# the EXECUTE call sends all buffered commands to the server, returning
# a list of responses, one for each command.
pipe.execute()
success = True
except Exception as e:
msg = '??????? Redis ????'
logger.error(e.message)
logger.error(traceback.format_exc())
return http_response_json({'success': success, 'msg': msg})
评论列表
文章目录