多台服务器怎么共用一个redis

4台服务器,负载访问的,要部署一个redis,怎么共用呢,随便部署一台服务上?原理是什么,不太懂,希望有人帮助解答一下,万分感谢。

7个回答

随便部署到任意一台机器上,保证内存和硬盘大小,四个服务器上得应用都可以使用这个redis服务,只需要通过 地址 ,端口号 调用redis就好

部署在任何一台就可以了

开放不同的端口号就可以了

redis-server 随便安装在一台服务器上,服务端启动后,自动开启端口监听,客户端通过指定的端口与服务端建立Socket 连接。

redis也是数据库,是通过ip访问的。你就当做你的程序在读取数据库吧

部署在所有服务器都能访问到的一台上就可以了,开发端口后用IP和端口就可以访问到

开发端口后用IP和端口就可以访问到

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

scrapy-redis 多个spider监听redis,只有一个能监听到

# 问题描述 >使用scrapy-redis进行分布式抓取时,遇到了一个很奇怪的问题,有俩台机器,Windows电脑A,和Ubuntu电脑B,redis server部署在 Windows电脑A上,在电脑A,B启动爬虫后,俩只爬虫都进入监听状态,在redis中进行 url的lpush操作,奇怪的事情发生了,电脑A,或者电脑B中只有一台电脑能监听到 redis,但是具体哪个能够监听到这个很随机,有时是电脑A,有时是电脑B,我能确保,电脑A和B都是连接上了 redis的 ## 运行环境 • scrapy 1.5.0 • scrapy-redis 0.6.8 • redis.py 2.10.6 • redis-server(windows x64) 3.2.100 ### 运行截图 #### 分别启动俩个spider ![图片说明](https://img-ask.csdn.net/upload/201801/21/1516546011_610430.jpg) #### 第一次进行url的lpush操作,结果如下 ![图片说明](https://img-ask.csdn.net/upload/201801/21/1516546036_920518.jpg) >这时只有爬虫A监听到了 redis的操作,执行抓取逻辑,而爬虫B仍然处于监听状态 ###手动停止俩只spider,并清空redis数据,再次开启爬虫,执行lpush操作,结果如下 ![图片说明](https://img-ask.csdn.net/upload/201801/21/1516546092_288308.jpg) >这时,爬虫B却监听到了redis的操作,执行抓取逻辑,而爬虫A仍处于监听状态 还有一张是lpush后 redis中的数据情况 ![图片说明](https://img-ask.csdn.net/upload/201801/21/1516546114_982429.png) 被这个问题困扰了2天了,这俩天一直没怎么睡,查了好多资料,试了好多办法,都不行,中间我把redis服务放在了电脑c上,但是还行不行。 希望前辈们,能指点一二 问题解决后请 采纳答案 进行终结;如果自己找到解决方案,你可以 自问自答 并采纳。

Redis 多系统使用同一KEY的处理?

如果在两个不同的系统都使用一个REDIS服务,且有可能存在两个系统使用同一个KEY的问题。如果避免使用同一个KEY不冲突的问题。听别人说REDIS有什么空间的划分,怎么用呀?

两台机器搭建了Redis cluster集群其中一台宕机了集群就不可用要怎么处理?

1.今天使用两台机器搭建了4主4从的Redis cluster集群,正常情况下可以使用集群,但是当一台机器关机后集群就不可用了。 ![图片说明](https://img-ask.csdn.net/upload/201905/12/1557675645_708374.png) 2.set也不能用 ![图片说明](https://img-ask.csdn.net/upload/201905/12/1557675690_434637.png)

Spring Boot + Redis + Nginx 如何实现两个不同项目(非同一项目多次部署)的session共享?

现有两台服务器,每台服务器上都要分别部署ProjectA和ProjectB两个项目,两个项目的用户登陆模块几乎一致,想通过spring boot + redis + nginx实现跨项目的session共享及负载均衡(四个项目session共享),两个项目redis配置一样,如下 ``` spring.redis.port=6379 spring.redis.host=192.168.1.8 spring.redis.password=123456 spring.redis.pool.max-active=100 spring.redis.pool.max-idle=5 spring.redis.pool.max-wait=60000 spring.session.store-type=redis ``` nginx.conf主要配置如下 upstream steamA{ ip_hash; server 192.168.1.11:8080; server 192.168.1.12:8080; } upstream streamB{ ip_hash; server 192.168.1.11:8075; server 192.168.1.12:8075; } server { listen 80; server_name localhost; charset utf-8; access_log logs/host.access.log; location /ProjectA/ { proxy_pass http://steamA/ProjectA/; proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; index Login.html; } location /ProjectB/ { proxy_pass http://streamB/ProjectB/; proxy_redirect off; proxy_set_header Host $host:$server_port; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; index Login.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } 这样的配置,两个A项目能共享session,两个B项目也能共享session,但A和B不能共享session,问下大神们需要如何处理?

使用redis服务器和主管同时运行多个laravel队列作业

<div class="post-text" itemprop="text"> <p>I am working on queue job in Laravel v4.2 project and I have five queue worker to perform different type of jobs in queues and each worker has more than 500 jobs at the same time. For queue job I am using redis server and supervisor to process automatically. Now problem that I am facing is that supervisor process one job at a time and another job process after completing the first queue job. Now I want to process more than one job at the same time and for this purpose I search on google and forums too but failed to find correct answer below is my command that I am running to run queue jobs through supervisor</p> <pre><code>command=php /home/rizwan/php/webservices/local/artisan queue:listen --queue=notificationQueue,lowQueue --tries=1 command=php /home/rizwan/php/Fayvo/favyo_webservices/local/artisan queue:listen --tries=1 </code></pre> <p>if I remove priority param from command then queue jobs does not process which is wrong and if I add it then it process notificationQueue jobs first and then lowQueue jobs after processing all the jobs of notificationQueue jobs but I want to process both jobs at same time.</p> <p>supervisor configuration</p> <pre><code>redirect_stderr=true autostart=true autorestart=true numprocs = 4 process_name = %(program_name)s%(process_num)s user=rizwan </code></pre> </div>

怎么将数据存储在一台redis服务分布在不同的redis数据库中

我在Windows上搭建了一个redis服务器,我想将数据缓存在这台redis上,但是所有的 数据都会默认缓存在index为0的这个数据库当中,怎么样才能将数据存储在不同下标上 的redis数据库?

Springboot项目中有两个Redis,可以实现session共享吗?

我有一个Springboot项目A,其中有两个Redis,Redis1和Redis2;项目复制了一份,改了个端口,起名为B,用的Redis还是A的那两个。这两个项目之间可以通过同一个Redis实现session共享吗?怎么指定session共享用的哪一个Redis?

是否可以在GKE上的多个微服务上共享单个Redis服务器?

<div class="post-text" itemprop="text"> <p>I have a redis-service running a redis server. Should I be able to store and retrieve data to that service from multiple clients on different services? I have been unsuccessful in my experiments thus far. </p> <p>I have a compute-service in its own pod that dials the redis-service and stores a key/value</p> <pre><code>rClient := redis.NewClient(&amp;redis.Options{ Addr: "redis-service:6379", Password: "", // no password set DB: 0, // use default DB }) rClient.Set("trump", "value", 0).Err() </code></pre> <p>I then have a web-service in its own pod that tries to read this value. Error returns Nil and the value is blank.</p> <pre><code>rClient := redis.NewClient(&amp;redis.Options{ Addr: "redis-service:6379", Password: "", // no password set DB: 0, // use default DB }) val, err := rClient.Get("trump").Result() fmt.Fprintf(w, "Print Error: %v ", err) //prints nil fmt.Fprintf(w, "Print Value: %s ", val) // blank </code></pre> <p>If I set the value in the web-service then I can read the value fine. I just cant seem to set the value in a different service. As far as I know Redis stores data on the server side which would be redis-service.</p> <p>Here is my redis-service deployment/service yaml files. Maybe it is the configuration?</p> <pre><code> apiVersion: v1 kind: Service metadata: name: redis-service labels: app: redis-service role: master tier: backend spec: ports: - port: 6379 targetPort: 6379 selector: app: redis-service apiVersion: extensions/v1beta1 kind: Deployment metadata: name: redis-service spec: selector: matchLabels: app: redis-service role: master tier: backend replicas: 1 template: metadata: labels: app: redis-service role: master tier: backend spec: containers: - name: redis-service image: k8s.gcr.io/redis:e2e # or just image: redis resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 6379 </code></pre> </div>

使用Redis架构URL连接到Redis服务器

<div class="post-text" itemprop="text"> <p>I'm trying to connect to a Redis server which is hosted on a url like this.</p> <p><code>redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799</code></p> <p>I have tried to use 2 libraries and none of them is able to connect to the server. I've used <a href="https://github.com/mediocregopher/radix.v3" rel="nofollow noreferrer">redix.v3</a> and <a href="https://github.com/go-redis/redis" rel="nofollow noreferrer">go-redis</a>.</p> <p>With <code>redix.v3</code> I get panic error when using the above like URL.</p> <p>On <code>go-redis</code> I got an error about there being too many colons in the url and I've tried using this url <code>[redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com]:38799</code> which was suggested on some post.</p> <p>Still no luck. Has anyone successfully connected to a Redis server?</p> <blockquote> <p>Code and Error for redix.v3</p> </blockquote> <pre><code>func main() { fmt.Println("running") client, err := radix.NewPool("tcp", "redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799", 10) if err != nil { // handle error } var fooVal string err = client.Do(radix.Cmd(&amp;fooVal, "SET", "foo", "hello")) fmt.Println(err, fooVal) } </code></pre> <p>Error:</p> <pre><code>panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4f2b7e] goroutine 1 [running]: github.com/mediocregopher/radix%2ev3.(*Pool).getExisting(0x0, 0x0, 0x0, 0x0) /home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:365 +0x4e github.com/mediocregopher/radix%2ev3.(*Pool).get(0x0, 0x40aa78, 0x51afe0, 0x525120) /home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:403 +0x2f github.com/mediocregopher/radix%2ev3.(*Pool).Do(0x0, 0x7f6478467fd0, 0xc0000e2070, 0x0, 0x0) /home/aks/go/src/github.com/mediocregopher/radix.v3/pool.go:440 +0x37 main.main() /home/aks/hello.go:17 +0x19e exit status 2 </code></pre> <blockquote> <p>Code and error for go-redis</p> </blockquote> <pre><code>client := redis.NewClient(&amp;redis.Options{ Addr: "redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799", Password: "", // no password set DB: 0, // use default DB }) // setup eviction policy on the redis client client.ConfigSet("maxmemory", Config.RedisMaxMemory) client.ConfigSet("maxmemory-policy", "allkeys-lru") _, err := client.Ping().Result() if err != nil { log.Println("Redis: failed to connect", err) } else { log.Println("Redis: connected") } </code></pre> <p>The Error:</p> <pre><code>2018/10/08 10:57:29 Redis: failed to connect dial tcp: address redis://h:asdfqwer1234asdf@ec2-111-1-1-1.compute-1.amazonaws.com:38799: too many colons in address </code></pre> </div>

将具有多个值的多个键设置为Redis

<div class="post-text" itemprop="text"> <p>I have a php backend using <code>phpredis</code> (a php client for the redis server) to store key value pairs to a Redis server. The data I need to store is of this form:</p> <pre><code>"key1" =&gt; "v1", "v2", "v3" "key2" =&gt; "m1", "m2", "m3" "key3" =&gt; "n1", "n2", "n3" ... </code></pre> <p>Based on my research, I can set multiple keys in a redis using the <code>mset</code> command like so:</p> <pre><code>$redis-&gt;mSet(array('key0' =&gt; 'value0', 'key1' =&gt; 'value1')); </code></pre> <p>But what I actually need is something like this:</p> <pre><code>$redis-&gt;mSet(array('key0' =&gt; array('v1','v2','v3') , 'key1' =&gt; array('m1', 'm2', 'm3'))); </code></pre> <p>But this just stores the value for each key as "Array" instead of the actual array specified.</p> <p>Is this possible to do with a single command like <code>mset</code> or do I need to iterate my data and set each key separately using something like <code>lPush</code>? </p> <p>phpredis documentation: <a href="https://github.com/phpredis/phpredis" rel="nofollow noreferrer">https://github.com/phpredis/phpredis</a></p> </div>

redis 集群环境下是单线程还时多线程

都说redis是单线程的。那么如果是三主三从的模式下还是单线程的么 相当于我三主三从就是6台机器了。这6个redis都是单线程串行执行的还是多个线程在跑呢 第一种是:6台机器都是单一线程 第二是:每台redis来说是单线程。 第三种是:三主是一个单线程,三从是另一个单线程 请问大神些是哪一种!

Redis+MongoDB 服务器端高速缓存

最近想使用Redis数据库当做Windows服务器上的一个高速缓存,我现在的思路是客户端向Redis数据库请求数据,如果Redis中已经缓存的有这些数据,就直接反馈给客户端,如果没有,Redis再向MongoDB中调用数据,将数据存入Redis,之后在发送给客户端,不知道这种思路可否行得通,还请各位大神多多指点。

Python多进程访问Redis时如何避免两个进程同时处理一同一个任务

如题所述,python多进程访问Redis数据库时,发现多个进程处理同一个任务,如何能避免这种问题呢?

redis并发查询时速度很慢

问个问题哦,1000个线程或者更多,并发访问同一个http链接,请求结果是json格式数据,后台做了redis缓存,key是请求的链接,value是请求结果,redis缓存时间大概10分钟,请求时如果redis存在,则直接返回redis结果,不存在则从数据库中查询,然后加到redis中,返回结果。发现1000个线程web服务器都能响应,但是到查询redis缓存时速度比较慢。想问下这可能是哪方面原因?

请教各位一个问题,不是什么代码问题,就是一个关于Redis的概念

我学了一段时间的Redis,主从复制、哨兵模式、集群什么的也都玩过了,知识对于缓存这个概念我太模糊了,就是缓存服务器,什么是缓存服务器呢,就是缓存是如何镶嵌子程序里面的呢?我前两天用Redis做了Mybatis的二级缓存,实现cache接口的过程我感觉就是 在读取一个数据的时候我存入Redis里面,然后下次取得时候我看Redis里面有没有。那对于缓存服务器这个东东是不是也是这个道理呢,况且Mybatis已经封装好了步骤,我要是自己写一个Redis缓存那么我每次操作数据的时候都要先操作Redis,那代码会异常的乱啊,而且这么做也不太现实啊,请问哪位老哥闲暇之际给我答疑解惑,也问一下有没有这样的demo,我对Redis比较感兴趣。

redis跟ehcache搭配使用怎么解决脏数据的问题

ehcache 作一级缓存,redis作二级缓存,怎么解决脏数据问题 如果服务器A和服务器B都在本地ehcache缓存中缓存了同一个数据X,若服务器A对X修改为了Y,那么修改后的结果Y会缓存在服务器A的ehcache缓存和redis中心缓存中,但是此时服务器B取到的这个数据会是X还是Y呢?服务器A对X数据进行修改后,redis中心缓存不会主动将修改后的值Y推送到各个服务器吗?

laravel缓存 怎么判断redis服务器是不是挂掉

我使用reids作为缓存,每次查询redis中是不是有缓存,没有缓存就在数据库里面查一下,保存半小时。但是如果没打开redis或者redis挂掉的情况下,网页就无法正常打开了。 能不能判断一下reids是不是存在,当reids挂掉的情况下,可以直接读取数据库来保证页面还能正常运行。 用的是阿里的reids,单机版。是不是我多虑了,不用考虑redis挂掉的情况 ``` if (Cache::tags('site')->has($county_key)) { $$county_info = Cache::tags('site')->get($county_key); }else{ $County = new County; $County_info = $County->getCountyInfo($is_city_info[$id]['city_id']); $county_info = json_encode($County_info); //如果redis挂掉的话,这里就回发生错误,页面无法正常打开 Cache::tags('site')->add($county_key,$$county_info,14000); } ```

redis集群中,一个节点宕掉后,怎么修复,让它恢复到集群中?

redis集群中,一个节点宕掉后,怎么修复,让它恢复到集群中?

Redis2.8.17 内存暴涨怎么解决?

现在公司用Redis来作为内存管理数据,自己写一个模拟队列方式来处理大数据 写读来支撑,却发现内存一直在暴涨,要达到服务器物理内存,导致系统性能下降,在网上搜了一番,如下方式我试过了都起不作用: 1. 删除过期key(因为我采用队列方式只有一个key,所以不能这样做)。 2. 增加服务器内存(这个有点不现实) 3. 配置文件中配置限制内存maxmemory,这个当达到峰值时候,莫名的报一些 Redis服务错误,导致服务停止。 4. Redis 集群(目前公司服务器只有单机,即使集群内存问题还是有,没有释放 ) 不知道csdn 技术大咖们,有没什么好的方式解决内存暴涨问题。

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问