草庐IT

prefix_keys

全部标签

redis - 如何让Redis只对部分key选择LRU驱逐策略?

有没有办法让Redis只为特定的键选择LRU(最近最少使用)驱逐策略?我希望一组key是持久的,并且在没有足够内存的情况下永远不会被驱逐。另一方面,如果内存不足,我希望可以自由驱逐另一组key。 最佳答案 Redis有一个驱逐政策,这可能对你的情况有好处。您可以将maxmemory-policy设置为volatile-lru,这会导致Redis:removethekeywithanexpiresetusinganLRUalgorithm这意味着未设置TTL的键不是易变的,因此不会被逐出,但具有TTL的键将按最近最少使用的顺序删除。实

Redis "evicted_keys"用途

在redis-cli中执行info命令时,会列出与该服务器相关的所有信息。“evicted_keys”的目的是什么? 最佳答案 Redis可以配置为根据需要自动清除键。如果这样配置,redis将只使用最大内存量,如果接近极限,则根据某些标准删除键。参见RedisasanLRUcache通过antirez。它可以被配置为仅删除具有到期时间的key,或所有key。它可以删除即将过期的key、最近使用的key或随secret钥。info中的evicted_keys是已驱逐(删除)的key数。

Redis "evicted_keys"用途

在redis-cli中执行info命令时,会列出与该服务器相关的所有信息。“evicted_keys”的目的是什么? 最佳答案 Redis可以配置为根据需要自动清除键。如果这样配置,redis将只使用最大内存量,如果接近极限,则根据某些标准删除键。参见RedisasanLRUcache通过antirez。它可以被配置为仅删除具有到期时间的key,或所有key。它可以删除即将过期的key、最近使用的key或随secret钥。info中的evicted_keys是已驱逐(删除)的key数。

mysql - Redis/Memcached/MongoDB(或任何 NoSQL 系统)是否支持 MySQL 的 ON DUPLICATE KEY UPDATE?

我需要跟踪哪个用户访问了哪个页面多少次。在MySQL中我会做这样的事情:INSERTINTOstats(user_id,url,hits)VALUES(1234,"/page/1234567890",1)ONDUPLICATEKEYUPDATEhits=hits+1;在表stats(user_id,url)中是UNIQUE为此,我正在寻找最快的系统。因为这只是为了统计数据,所以保持耐用性并不重要。Redis或MongoDB或Memcached或任何其他NoSQL系统是否支持这样的功能?您将如何实现它以获得最高性能? 最佳答案 在Mo

mysql - Redis/Memcached/MongoDB(或任何 NoSQL 系统)是否支持 MySQL 的 ON DUPLICATE KEY UPDATE?

我需要跟踪哪个用户访问了哪个页面多少次。在MySQL中我会做这样的事情:INSERTINTOstats(user_id,url,hits)VALUES(1234,"/page/1234567890",1)ONDUPLICATEKEYUPDATEhits=hits+1;在表stats(user_id,url)中是UNIQUE为此,我正在寻找最快的系统。因为这只是为了统计数据,所以保持耐用性并不重要。Redis或MongoDB或Memcached或任何其他NoSQL系统是否支持这样的功能?您将如何实现它以获得最高性能? 最佳答案 在Mo

redis - 为什么我的 Redis Lua 脚本不能自动更新不同 Redis 集群节点上的 key ?

我有一个由多个节点组成的Redis集群。我想在单个原子操作中更新3个不同的键。我的Lua脚本是这样的:localu1=redis.call('incrby',KEYS[1],ARGV[1])localu2=redis.call('incrby',KEYS[2],ARGV[1])localu3=redis.call('incrby',KEYS[3],ARGV[1])然后我用:EVALscript3key1key2key3arg但是我收到了错误信息:WARNResp(AppErrCROSSSLOTKeysinrequestdon'thashtothesameslot)以上操作无法进行,更新

redis - 为什么我的 Redis Lua 脚本不能自动更新不同 Redis 集群节点上的 key ?

我有一个由多个节点组成的Redis集群。我想在单个原子操作中更新3个不同的键。我的Lua脚本是这样的:localu1=redis.call('incrby',KEYS[1],ARGV[1])localu2=redis.call('incrby',KEYS[2],ARGV[1])localu3=redis.call('incrby',KEYS[3],ARGV[1])然后我用:EVALscript3key1key2key3arg但是我收到了错误信息:WARNResp(AppErrCROSSSLOTKeysinrequestdon'thashtothesameslot)以上操作无法进行,更新

java - 从 Redis 中提取 key

我使用以下代码提取所有以“NAME:”开头的键,它只返回超过5,000条记录(我的索引中有超过60,000个键)。任何人都可以解释为什么会发生这种情况,或者我如何从Redis数据库中提取所有key。jedis.select(3);Setnames=jedis.keys("NAME:*");Iteratorit=names.iterator();while(it.hasNext()){Strings=it.next();System.out.println(s);} 最佳答案 当Redis服务器存储了很多记录时,使用jedis.key

java - 从 Redis 中提取 key

我使用以下代码提取所有以“NAME:”开头的键,它只返回超过5,000条记录(我的索引中有超过60,000个键)。任何人都可以解释为什么会发生这种情况,或者我如何从Redis数据库中提取所有key。jedis.select(3);Setnames=jedis.keys("NAME:*");Iteratorit=names.iterator();while(it.hasNext()){Strings=it.next();System.out.println(s);} 最佳答案 当Redis服务器存储了很多记录时,使用jedis.key

Spring RedisTemplate : use same key with multiple RedisTemplate to store different values

我是Redis的新手,想用我现有的spring应用程序来实现它。我的问题是使用具有相同键的不同redisTemplate来存储不同类型的值。例如我在spring中定义了redisTemplate1和redisTemplate2bean,比如。在我的服务的java文件中,我使用这两个redis模板创建了两个不同的数据结构。@Autowired@Qualifier(value="redisTemplate1")privateRedisTemplateredisTemplate1;@Autowired@Qualifier(value="redisTemplate2")privateRedis