mirror of
https://git.nadeko.net/Fijxu/invidious.git
synced 2025-12-15 01:25:08 +00:00
redis: replace lib by jgaskins/redis
https://github.com/jgaskins/redis It's faster and in active development, old one gave me this using a TCP connection: test 5.94k (168.34µs) (±56.73%) 144B/op fastest test 5.11k (195.76µs) (±58.89%) 144B/op fastest test 5.48k (182.33µs) (±73.39%) 144B/op fastest test 3.42k (292.56µs) (±66.19%) 144B/op fastest meanwhile, the jgaskins/redis one gives: test 6.96k (143.66µs) (±58.73%) 96.0B/op fastest test 6.36k (157.16µs) (±55.95%) 96.0B/op fastest test 7.06k (141.65µs) (±57.03%) 96.0B/op fastest
This commit is contained in:
@@ -107,8 +107,8 @@ class Config
|
||||
# Database configuration using 12-Factor "Database URL" syntax
|
||||
@[YAML::Field(converter: Preferences::URIConverter)]
|
||||
property database_url : URI = URI.parse("")
|
||||
property redis_url : String?
|
||||
property redis_socket : String?
|
||||
@[YAML::Field(converter: Preferences::URIConverter)]
|
||||
property redis_url : URI = URI.parse("")
|
||||
# Use polling to keep decryption function up to date
|
||||
property decrypt_polling : Bool = false
|
||||
# Used for crawling channels: threads should check all videos uploaded by a channel
|
||||
|
||||
@@ -97,21 +97,24 @@ module Invidious::Database::Videos
|
||||
end
|
||||
|
||||
class Redis_
|
||||
@redis : Redis::PooledClient
|
||||
@redis : Redis::Client
|
||||
|
||||
def initialize
|
||||
@redis = Redis::PooledClient.new(unixsocket: CONFIG.redis_socket || nil, url: CONFIG.redis_url || nil)
|
||||
@redis = Redis::Client.new(CONFIG.redis_url)
|
||||
LOGGER.info "Video Cache: Using Redis compatible DB to store video cache"
|
||||
LOGGER.info "Connecting to Redis compatible DB"
|
||||
if @redis.ping
|
||||
LOGGER.info "Connected to Redis compatible DB via unix domain socket at '#{CONFIG.redis_socket}'" if CONFIG.redis_socket
|
||||
LOGGER.info "Connected to Redis compatible DB via TCP socket at '#{CONFIG.redis_url}'" if CONFIG.redis_url
|
||||
# #ping method is not available in this Redis library
|
||||
# https://github.com/jgaskins/redis/issues/53
|
||||
# if @redis.ping
|
||||
if @redis.run({"PING"}) == "PONG"
|
||||
# LOGGER.info "Connected to Redis compatible DB via unix domain socket at '#{CONFIG.redis_socket}'" if CONFIG.redis_socket
|
||||
LOGGER.info "Connected to Redis compatible DB at '#{CONFIG.redis_url}'" if CONFIG.redis_url
|
||||
end
|
||||
end
|
||||
|
||||
def set(video : Video, expire_time)
|
||||
@redis.set(video.id, video.info.to_json, expire_time)
|
||||
@redis.set(video.id + ":time", video.updated, expire_time)
|
||||
@redis.set(video.id, video.info.to_json, ex: expire_time)
|
||||
@redis.set(video.id + ":time", video.updated.to_s, ex: expire_time)
|
||||
end
|
||||
|
||||
def del(id : String)
|
||||
|
||||
Reference in New Issue
Block a user