标签: redis

将数据从 Postgresql 移动到 Redis(DB-1)

我正在开发一个 Spring-MVC 应用程序,我们使用 etherpad 作为文本编辑器。Etherpad 将其内容作为简单的键值对保存在数据库中。但对于这样一个简单的任务来说,性能太差了,而且 Etherpad 不执行任何 JOIN 或其他复杂的操作。出于这个原因,我们决定迁移到redis。Redis 正在工作,但我们的数据滞留在 postgresql 数据库中。我们如何将其移动到 Redis 第一个数据库。这是数据库的样子:

在此输入图像描述

Redis 在本地工作于端口 6379。

migration postgresql key database-migration redis

0
推荐指数
1
解决办法
2445
查看次数

将朋友列表实现到数据库的最佳方法?MySQL

所以我的项目有一个“朋友列表”,并且在 MySQL 数据库中我创建了一个表:

姓名A

姓名B

主键(名称A,名称B)

这将导致大量条目,但为了确保我的数据库标准化,我不确定还有什么方法可以实现这一点?

我的项目也使用Redis..我可以将它们存储在那里。

当一个人加入服务器时,我必须搜索所有条目,看看他们的名字是nameA还是nameB,然后将这两个名字放在一起作为好友,这也可能效率低下。

干杯。

java mysql sql redis

0
推荐指数
1
解决办法
1155
查看次数

如何高效地将flink pipeline中的数据写入redis

我正在 Apache flink sql api 中构建管道。该管道执行简单的投影查询。但是,我需要在查询之前编写一次元组(确切地说是每个元组中的一些元素),在查询之后编写一次。事实证明,我用来写入 Redis 的代码严重降低了性能。即flink在很小的数据速率下做出反压。我的代码有什么问题以及如何改进。有什么建议请。

当我停止写入redis之前和之后,性能都非常好。这是我的管道代码:

public class QueryExample {
    public static Long throughputCounterAfter=new Long("0");
    public static void main(String[] args) {
        int k_partitions = 10;
        reamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
        env.setParallelism(5 * 32);
        Properties props = new Properties();
        props.setProperty("zookeeper.connect", "zookeeper-node-01:2181");
        props.setProperty("bootstrap.servers", "kafka-node-01:9092,kafka-node-02:9092,kafka-node-03:9092");
        // not to be shared with another job consuming the same topic
        props.setProperty("group.id", "flink-group");
        props.setProperty("enable.auto.commit","false");
        FlinkKafkaConsumer011<String> purchasesConsumer=new FlinkKafkaConsumer011<String>("purchases",
                new SimpleStringSchema(),
                props);

        DataStream<String> purchasesStream = env
                .addSource(purchasesConsumer)
                .setParallelism(Math.min(5 * 32, k_partitions));
        DataStream<Tuple4<Integer, Integer, Integer, Long>> purchaseWithTimestampsAndWatermarks …
Run Code Online (Sandbox Code Playgroud)

redis backpressure apache-flink flink-streaming flink-sql

0
推荐指数
1
解决办法
2314
查看次数

了解为什么您希望在将来处理消息队列

所以我试图了解队列解决了哪些实际问题。通过阅读谷歌上的所有信息,我得到了高水平的信息。

  • 将消息推送到队列以便稍后处理

因此,我正在研究 A 公司的架构,他们对于作业队列有不同的用例,例如

  • 聊天消息
  • 文件转换
  • 寻找
  • 大量的sql查询

为什么要稍后处理呢?

这是我最好的猜测...

  1. 假设我有一个应用程序可以一次处理 10 个“事物”。
  2. 然后我的应用程序将其处理能力最大化。
  3. 第 11 个请求传入,因此应用程序将其放入队列中以供稍后处理

假设这是一个有效的用例,那么添加更多服务器来处理更多“事物”难道没有意义吗?是因为添加更多服务器比使用队列成本更高并且稍微牺牲响应时间吗?

根据我的用例示例,队列还能为它们解决哪些其他问题?

distributed-computing rabbitmq amazon-sqs redis amazon-swf

0
推荐指数
1
解决办法
638
查看次数

如何使用redis-cli控制台列出数据?

我可以通过 Restful API 方法调用添加和查看键值对。 Restful api方法的响应

但是添加键值对后,当我尝试使用 redis-cli 控制台列出/查看它们时,它没有列出任何值。 redis-cli 结果

正如您所注意到的,在控制台中,它列出了 **keys *** 命令的一些垃圾值(通过浏览器添加新的键/值后),但是当我尝试检索密钥时,它显示为空。

这可能是什么原因?如何在控制台中正确列出这些值?

还附上restful api方法定义: 安静的 API 方法

java redis jedis spring-boot

0
推荐指数
1
解决办法
1167
查看次数

如何在 Docker 上使用 redis-cli 和 Redis?

在 Docker 中运行 Redis

文件docker-compose.yml

version: "3.8"

services:
  redis:
    image: redis
    volumes:
      - ./data:/data
    ports:
      - 6379:6379
Run Code Online (Sandbox Code Playgroud)
docker pull redis
docker-compose up
docker-compose up -d
docker container ls
telnet localhost 6379
Run Code Online (Sandbox Code Playgroud)

如何连接到Redis服务器redis-cli

redis docker redis-cli docker-compose

0
推荐指数
1
解决办法
3801
查看次数

redis如何分离运行在同一台服务器上的多个用户实例?

我对Redis的困惑

如果我在我的服务器上安装 Redis,并且我的4 个不同客户端连接到同一Redis 服务器,那么它们之间的数据将如何保持独立,以便一个客户端不会覆盖其他客户端已保存的键值对。

例如:-

client-1 设置名称=“adam”

client-2 设置名称=“henry”

因此,由于 Redis 服务器在这些客户端之间是通用的,客户端 1 设置的名称密钥将被客户端 2覆盖,因此当 客户端 1 执行 get name ==> henry 时(由于它已更新,这是错误的,他期望是亚当)

那么Redis是如何分离运行在同一台服务器上的多个用户实例的呢?它是否在内部创建单独的数据库或按用户存储还是什么?

redis

0
推荐指数
1
解决办法
1789
查看次数

如何为 symfony5 redis 缓存池设置命名空间和项目过期

我尝试在 Synfony5 应用程序中配置两个缓存池以使用特定命名空间并为项目设置默认到期日期。在尝试了无数次第无数次变化之后,我感觉我的配置正在循环。

到目前为止我的理解是: 在RedisAdapter 的 构造函数中,您可以设置命名空间和默认过期时间。在 createConnection 方法中,您可以设置 Redis 服务器的 url。

然而RedisAdapter的构造函数似乎已经需要一个redis客户端(= redis连接?)RedisAdapter:

/**
 * @param \Redis|\RedisArray|\RedisCluster|\Predis\ClientInterface $redisClient     The redis client
 * @param string                                                   $namespace       The default namespace
 * @param int                                                      $defaultLifetime The default lifetime
 */
public function __construct($redisClient, string $namespace = '', int $defaultLifetime = 0, MarshallerInterface $marshaller = null)
{
    $this->init($redisClient, $namespace, $defaultLifetime, $marshaller);
}
Run Code Online (Sandbox Code Playgroud)

如何将命名空间和 defaultLifetimes 注入 RedisAdapter?

到目前为止我尝试过的:cache.yaml:

framework:
    cache:
        pools:
            cache.sap:
                adapter: cache.adapter.redis
                provider: app.service.puc_sap_redis_adapter
            cache.pers:
                adapter: cache.adapter.redis
                provider: app.service.puc_pers_redis_adapter
Run Code Online (Sandbox Code Playgroud)

服务.yaml:

app.my_redis_adapter: …
Run Code Online (Sandbox Code Playgroud)

caching redis symfony5

0
推荐指数
1
解决办法
1845
查看次数

Redis缓存的过期时间比设置的过期时间快很多

当尝试使用 python Redis 包从缓存中读取时,它显示为已过期。这会在设置缓存后 5 秒内发生。不过,5 秒内的任何读取都有效。

但密钥设置为 180 秒或 3 分钟后过期。这有可能吗?此外,在第一次写入后,redis 密钥不会被写入/失效。

import redis
time_to_expire_s=180
client = redis.StrictRedis(host=self.host, port=self.port, password=self.password)
client.set(key, zlib.compress(value.encode('utf-8')), ex=time_to_expire_s)
Run Code Online (Sandbox Code Playgroud)

这是奇怪的行为吗?设置为更长的缓存,如 3600(1 小时)解决了我的问题,但想知道为什么 3 分钟的缓存会在 5 秒后过期......

谢谢

python caching redis

0
推荐指数
1
解决办法
2488
查看次数

jedis 无法连接到 redis docker 实例 - 连接被拒绝(连接被拒绝)

按照 url链接中的建议在本地运行 redis docker 映像, 从日志中可以看出该映像运行良好

docker pull redis
docker run --name some-redis -d redis
Run Code Online (Sandbox Code Playgroud)

然后docker启动。我可以看到如下日志

docker logs --follow some-redis
1:C 08 Jul 2021 07:17:51.243 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 08 Jul 2021 07:17:51.243 # Redis version=6.2.4, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 08 Jul 2021 07:17:51.243 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 08 Jul 2021 07:17:51.244 * monotonic clock: POSIX …
Run Code Online (Sandbox Code Playgroud)

java redis jedis docker

0
推荐指数
1
解决办法
2012
查看次数