社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Itamar Haber

Itamar Haber 最近创建的主题
Itamar Haber 最近回复了
6 年前
回复了 Itamar Haber 创建的主题 » 我们称之为redis中db0旁边的键

橙色突出显示是一个Redis(逻辑)数据库。 蓝色突出显示是一个字段及其散列中的相应值。

6 年前
回复了 Itamar Haber 创建的主题 » redis地理空间,按时间查询

要使用Redis实现这一点,您确实需要两个排序集——一个用于存储地理数据,另一个用于存储时间戳。

这个例子展示了一种方法:

127.0.0.1:6379> GEOADD locations 0 0 id:1 1 1 id:2 0.1 0.0 id:3
(integer) 3
127.0.0.1:6379> ZADD timestamps 1000 id:1 100 id:2 800 id:3
(integer) 3
127.0.0.1:6379> GEORADIUS locations 0.2 0.0 100 km STORE tmp
(integer) 2
127.0.0.1:6379> ZINTERSTORE tmp 2 tmp timestamps WEIGHTS 0 1 AGGREGATE SUM
(integer) 2
127.0.0.1:6379> ZRANGEBYSCORE tmp 900 1100
1) "id:1"

在这种情况下,应该通过扫描“时间戳”排序集中的旧条目并从所有相关数据结构中删除它们,定期完成过期。

6 年前
回复了 Itamar Haber 创建的主题 » redis/rq工人在python3上断裂

这是一个已知的问题,由Redis Py的新版本3引起-请参见 https://github.com/rq/rq/issues/1014

6 年前
回复了 Itamar Haber 创建的主题 » 使用redis为不安全的Docker容器提供数据服务

redis副本主要设计为允许高可用性,因此可以通过网络进行连接。它们不支持到主服务器的UDS连接。

但是,您可以使用socat将unix套接字公开为tcp(例如 https://serverfault.com/questions/517906/how-to-expose-a-unix-domain-socket-directly-over-tcp )

6 年前
回复了 Itamar Haber 创建的主题 » 有没有什么方法可以在访问Redis后将其从Redis中逐出?

术语“收回”是指具有到期集(TTL)的密钥。虽然没有专用的命令来实现您想要的,但是您可以使用事务,例如:

WATCH bucket-1
HGET bucket-1 name
(pseudo: if not nil)
MULTI
HDEL bucket-1 name
EXEC

如果 EXEC 失败意味着你在线程B中(假设A先到达那里)。

或者,可以将上面的内容压缩成一个惯用的lua脚本,正如@the dude建议的那样,例如( 为可读性添加了换行符 ):

EVAL "local v=redis.call('HGET', KEYS[1], ARGV[1])
      redis.call('HDEL', KEYS[1], ARGS[1])
      return v" 
      1 bucket-1 name

nil 回复意味着你是B。

6 年前
回复了 Itamar Haber 创建的主题 » 如何在Redis的zrank中以相同的分数获得相同的排名?

6 年前
回复了 Itamar Haber 创建的主题 » 如何在Redis的zrank中以相同的分数获得相同的排名?
6 年前
回复了 Itamar Haber 创建的主题 » 如何在Redis的zrank中以相同的分数获得相同的排名?

local hscores_key = KEYS[1]
local user = ARGV[1]
local increment = ARGV[2]
local new_score = redis.call('HINCRBY', hscores_key, user, increment)

local old_score = new_score - increment
local hcounts_key = KEYS[2]
local old_count = redis.call('HINCRBY', hcounts_key, old_score, -1)
local new_count = redis.call('HINCRBY', hcounts_key, new_score, 1)

local zdranks_key = KEYS[3]
if new_count == 1 then
  redis.call('ZADD', zdranks_key, new_score, new_score)
end
if old_count == 0 then
  redis.call('ZREM', zdranks_key, old_score)
end

local hscores_key = KEYS[1]
local zdranks_key = KEYS[2]
local user = ARGV[1]

local score = redis.call('HGET', hscores_key, user)
return redis.call('ZRANK', zdranks_key, score)
6 年前
回复了 Itamar Haber 创建的主题 » 是否有一个golang redis客户端自动检测pubsub的新碎片?