찾다
데이터 베이스RedisRedis 마스터-슬레이브 복제에 대한 자세한 설명

Redis 마스터-슬레이브 복제에 대한 자세한 설명

이 장에서는 Redis의 강력한 기능인 마스터-슬레이브 복제를 소개합니다. 마스터 호스트에는 여러 슬레이브 시스템이 있을 수 있습니다. 그리고 슬레이브 슬레이브는 여러 슬레이브 슬레이브를 가질 수 있습니다. 이는 강력한 다단계 서버 클러스터 아키텍처(높은 확장성)를 지속적으로 형성합니다. Redis 단일 실패 지점을 방지하고 재해 복구 효과(고가용성)를 달성할 수 있습니다. 읽기와 쓰기의 분리 아키텍처는 더 많은 읽기와 더 적은 쓰기로 동시 애플리케이션 시나리오를 충족합니다. 추천: redis 비디오 튜토리얼

마스터-슬레이브 복제의 역할

마스터-슬레이브 복제, 읽기-쓰기 분리, 재해 복구. 하나의 호스트는 데이터 쓰기를 담당하고 여러 슬레이브 머신은 데이터 백업을 담당합니다. 동시성이 높은 시나리오에서는 호스트 시스템이 중단되더라도 슬레이브 시스템을 사용하여 호스트 시스템 대신 계속 작업하여 단일 오류 지점으로 인한 시스템 성능 문제를 방지할 수 있습니다. 읽기와 쓰기를 분리하면 더 많이 읽고 덜 쓰는 애플리케이션의 성능이 향상됩니다.

마스터-슬레이브 복제 아키텍처

Redis 복제의 기본에는 슬레이브 Redis 서버가 마스터 서버의 정확한 복사본이 되도록 허용하는 마스터-슬레이브 복제를 사용하고 구성하는 것이 매우 간단합니다.

실제로 간단한 명령 하나: 호스트 IP 호스트 포트의 슬레이브, 마스터-슬레이브 관계를 확인할 수 있습니다. 명령: ./redis-sentinel sentinel.conf, 센티넬 모니터링을 시작할 수 있습니다.

건축은 간단하지만 유지 관리가 어렵습니다. 동시성이 높은 시나리오에서는 예상치 못한 문제가 많이 발생할 수 있습니다. 우리는 복제의 원리, 호스트 머신에 대한 친숙함, 슬레이브 머신이 다운된 후의 변경 사항에 대해서만 명확하게 이해하고 있습니다. 그래야만 이러한 함정을 잘 극복할 수 있습니다. 아래의 각 단계는 작은 지식 포인트이자 작은 장면입니다. 한 단계를 완료할 때마다 지식을 얻게 됩니다.

건축 다이어그램: 주인 1명, 하인 2명, 군인 1명 (주인 여러 명, 하인 여러 명, 군인 여러 명도 있을 수 있음)

Redis 마스터-슬레이브 복제에 대한 자세한 설명

건축 전 준비 사항

가난 때문에 저자는 다음을 사용하기로 결정했습니다. 세 개의 호스트를 시뮬레이션하는 하나의 서버. 프로덕션 환경과의 유일한 차이점은 IP 주소와 포트입니다.

1단계: redis.conf의 복사본 3개를 복사합니다. 이름은 redis6379.conf, redis6380.conf, redis6381.conf입니다.

2단계: 세 파일의 포트 포트, pid 파일 이름, 로그 파일 이름을 수정합니다. rdb 파일 이름

3단계: 세 개의 창을 열어 세 개의 서버를 시뮬레이션하고 redis 서비스를 시작합니다.

[root@itdragon bin]# cp redis.conf redis6379.conf
[root@itdragon bin]# cp redis.conf redis6380.conf
[root@itdragon bin]# cp redis.conf redis6381.conf
[root@itdragon bin]# vim redis6379.conf
logfile "6379.log"
dbfilename dump_6379.rdb
[root@itdragon bin]# vim redis6380.conf
pidfile /var/run/redis_6380.pid
port 6380
logfile "6380.log"
dbfilename dump_6380.rdb
[root@itdragon bin]# vim redis6381.conf
port 6381
pidfile /var/run/redis_6381.pid
logfile "6381.log"
dbfilename dump_6381.rdb
[root@itdragon bin]# ./redis-server redis6379.conf
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> keys *
(empty list or set)
[root@itdragon bin]# ./redis-server redis6380.conf 
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6380
127.0.0.1:6380> keys *
(empty list or set)
[root@itdragon bin]# ./redis-server redis6381.conf 
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6381
127.0.0.1:6381> keys *
(empty list or set)

마스터-슬레이브 복제 설정 단계

기본 구성

1단계: 마스터-슬레이브 복제 정보를 쿼리하고 각각 3개의 포트를 선택한 후 info 복제 명령을 실행합니다.

# 6379 端口
[root@itdragon bin]# ./redis-server redis6379.conf
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
......

# 6380 端口
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:0
......

# 6381 端口
127.0.0.1:6381> info replication
# Replication
role:master
connected_slaves:0
......

세 포트 모두 동일한 정보를 인쇄합니다: role:master 역할은 마스터이고,connected_slaves:0 연결된 슬레이브의 수는 0입니다. 매개변수의 의미에 대해 자세히 알아보려면 다음 링크를 방문하십시오: http://redisdoc.com/server/info.html

2단계: 포트 6379를 선택하고 명령을 실행합니다: set k1 v1

127.0.0.1:6379> set k1 v1
OK

3단계: 설정 마스터-슬레이브 관계, 포트 6380 및 포트 6381을 각각 선택하고 다음 명령을 실행하십시오: SLAVEOF 127.0.0.1 6379

# 6380 端口
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......

# 6381 端口
127.0.0.1:6381> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......

# 6379 端口
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=98,lag=1
slave1:ip=127.0.0.1,port=6381,state=online,offset=98,lag=1
......

마스터-슬레이브 관계가 변경되었습니다:

포트 6380 및 포트 6381에 의해 인쇄된 정보: 역할: 슬레이브 슬레이브 ; master_host:127.0.0.1 호스트 IP 주소; master_port:6379 호스트의 포트입니다.

포트 6379로 출력되는 정보: 역할:마스터 호스트; 연결_슬레이브:2 슬레이브에 연결; 슬레이브X: ID, IP 주소, 포트 번호, 연결 상태, 슬레이브 데이터베이스 정보

4단계: 전체를 복사하고 포트 6380을 별도로 선택합니다. 포트 6381에서는 다음 명령을 실행합니다: get k1

# 6380 端口
127.0.0.1:6380> get k1
"v1"

# 6381 端口
127.0.0.1:6381> get k1
"v1"

두 포트 모두 k1 값을 인쇄할 수 있습니다. 이는 마스터-슬레이브 관계가 설정되면 슬레이브가 호스트의 데이터를 갖게 된다는 의미입니다.

5단계: 증분 복사를 수행하고 포트 6379를 선택한 후 set k2 v2 명령을 실행합니다. 그런 다음 각각 포트 6380과 포트 6381을 선택하고 명령을 실행합니다: get k2

# 6379 端口
127.0.0.1:6379> set k2 v2
OK

# 6380 端口
127.0.0.1:6380> get k2
"v2"

# 6381 端口
127.0.0.1:6381> get k2
"v2"

두 포트 모두 k2 값을 인쇄할 수 있습니다. 즉, 마스터-슬레이브 관계가 설정된 후 호스트에서 추가한 새 데이터가 복사됩니다. 노예에게.

6단계: 마스터-슬레이브 읽기-쓰기 분리, 포트 6380 선택, 명령 실행: set k3 v3

# 6380 端口
127.0.0.1:6380> set k3 v3
(error) READONLY You can't write against a read only slave.

# 6379 端口
127.0.0.1:6379> set k3 v3
OK

슬레이브 6380은 읽기-쓰기 분리 메커니즘으로 인해 쓰기에 실패했습니다.

7단계: 호스트가 다운된 경우 포트 6379를 선택하고 다음 명령을 실행합니다. shutdown

# 6379 端口
127.0.0.1:6379> SHUTDOWN
not connected> QUIT

# 6380 端口
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......

# 6381 端口
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......

인쇄된 결과에서 슬레이브가 대기 중임을 알 수 있습니다.

8단계: 호스트가 다운된 후 복구하려면 다음을 선택합니다. 포트 6379, Redis 서비스를 다시 시작하고 set k4 v4 명령을 실행합니다. 포트 6380과 포트 6381을 각각 선택하고 get k4

# 6379 端口
[root@itdragon bin]# ./redis-server redis6379.conf 
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> set k4 v4
OK

# 6380 端口
127.0.0.1:6380> get k4
"v4"

# 6381 端口
127.0.0.1:6381> get k4
"v4"

명령을 실행합니다. 호스트가 다시 시작되면 모든 것이 정상입니다.

9단계: 슬레이브 머신에서 복구하고 포트 6380을 선택한 후 shutdown 명령을 실행합니다. 포트 6379를 선택하고 set k5 v5 명령을 실행합니다. 포트 6380을 선택하고 Redis 서비스를 다시 시작한 후 get k5

명령을 실행합니다.
# 6380 端口
127.0.0.1:6380> SHUTDOWN
not connected> QUIT
[root@itdragon bin]# ./redis-server redis6380.conf
[root@itdragon bin]# ./redis-cli -h 127.0.0.1 -p 6380
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......
127.0.0.1:6380> get k5
"v5"

# 6379 端口
127.0.0.1:6379> set k5 v5
OK

从机宕机后,一切正常。笔者用的是redis.4.0.2版本的。看过其他教程,从机宕机恢复后,只能同步主机新增数据,也就是k5是没有值的,可是笔者反复试过,均有值。留着备忘!

第十步:去中性化思想,选择6380端口,执行命令:SLAVEOF 127.0.0.1 6381。选择6381端口,执行命令:info replication

# 6380 端口
127.0.0.1:6380> SLAVEOF 127.0.0.1 6381
OK

# 6381 端口
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......
connected_slaves:1
slave0:ip=127.0.0.1,port=6380,state=online,offset=1677,lag=1
......

虽然6381 是6380的主机,是6379的从机。在Redis眼中,6381依旧是从机。一台主机配多台从机,一台从机在配多台从机,从而实现了庞大的集群架构。同时也减轻了一台主机的压力,缺点是增加了服务器间的延迟。

从机上位 

模拟主机宕机,人为手动怂恿从机上位的场景。先将三个端口恢复成6379是主机,6380和6381是从机的架构。

从机上位步骤:

第一步:模拟主机宕机,选择6379端口,执行命令:shutdown

第二步:断开主从关系,选择6380端口,执行命令:SLAVEOF no one

第三步:重新搭建主从,选择6381端口,执行命令:info replication,SLAVEOF 127.0.0.1 6380

第四步:之前主机恢复,选择6379端口,重启Redis服务,执行命令:info replication

在6379主机宕机后,6380从机断开主从关系,6381开始还在原地待命,后来投靠6380主机后,6379主机回来了当它已是孤寡老人,空头司令。

# 6379端口

127.0.0.1:6379> SHUTDOWN
not connected> QUIT

# 6380端口
127.0.0.1:6380> SLAVEOF no one
OK
127.0.0.1:6380> set k6 v6
OK

# 6381端口
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
......
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK
127.0.0.1:6381> get k6
"v6"

哨兵监控 

从机上位是需要人为控制,在生产环境中是不可取的,不可能有人实时盯着它,也不可能大半夜起床重新搭建主从关系。在这样的需求促使下,哨兵模式来了!!!

哨兵有三大任务:

1 监控:哨兵会不断地检查你的Master和Slave是否运作正常

2 提醒:当被监控的某个Redis出现问题时, 哨兵可以通过API向管理员或者其他应用程序发送通知

3 故障迁移:若一台主机出现问题时,哨兵会自动将该主机下的某一个从机设置为新的主机,并让其他从机和新主机建立主从关系。

哨兵搭建步骤:

第一步:新开一个窗口,取名sentinel,方便观察哨兵日志信息

第二步:创建sentinel.conf文件,也可以从redis的解压文件夹中拷贝一份。

第三步:设置监控的主机和上位的规则,编辑sentinel.conf,输入 sentinel monitor itdragon-redis 127.0.0.1 6379 1 保存退出。解说:指定监控主机的ip地址,port端口,得票数。

第四步:前端启动哨兵,执行命令:./redis-sentinel sentinel.conf。

第五步:模拟主机宕机,选择6379窗口,执行命令:shutdown。

第六步:等待从机投票,在sentinel窗口中查看打印信息。

第七步:启动6379服务器,

语法结构:sentinel monitor 自定义数据库名 主机ip 主机port 得票数

若从机得票数大于设置值,则成为新的主机。若之前的主机恢复后,

如果哨兵也宕机了???那就多配几个哨兵并且相互监控。

# sentinel窗口
[root@itdragon bin]# vim sentinel.conf
sentinel monitor itdragon-redis 127.0.0.1 6379 1
[root@itdragon bin]# ./redis-sentinel sentinel.conf
......
21401:X 29 Nov 15:39:15.052 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ itdragon-redis 127.0.0.1 6380
21401:X 29 Nov 15:39:15.052 * +slave slave 127.0.0.1:6379 127.0.0.1 6379 @ itdragon-redis 127.0.0.1 6380
21401:X 29 Nov 15:39:45.081 # +sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ itdragon-redis 127.0.0.1 6380

21401:X 29 Nov 16:40:52.055 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ itdragon-redis 127.0.0.1 6380
21401:X 29 Nov 16:41:02.028 * +convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ itdragon-redis 127.0.0.1 6380
......

# 6379端口
127.0.0.1:6379> SHUTDOWN
not connected> QUIT

# 6380端口
127.0.0.1:6380> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=72590,lag=0
......

# 6381端口
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
......

+slave :一个新的从服务器已经被 Sentinel 识别并关联。

+sdown :给定的实例现在处于主观下线状态。

-sdown :给定的实例已经不再处于主观下线状态。

Redis 마스터-슬레이브 복제에 대한 자세한 설명

Redis 마스터-슬레이브 복제에 대한 자세한 설명

主从复制的原理

全量复制

实现原理:建立主从关系时,从机会给主机发送sync命令,主机接收命令,后台启动的存盘进程,同时收集所有用于修改命令,传送给从机。

增量复制

实现原理:主机会继续将新收集到的修改命令依次传给从机,实现数据的同步效果。

主从复制的缺点

Redis的主从复制最大的缺点就是延迟,主机负责写,从机负责备份,这个过程有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,从机器数量的增加也会使这个问题更加严重。

Summary

1 마스터-슬레이브 복제 관계 보기 명령: info 복제

2 마스터-슬레이브 관계 설정 명령: Slaveof 호스트 ip 호스트 포트

3 센티넬 모드 활성화 명령: ./redis-sentinel sentinel.conf

4 마스터 복제 원리에서 시작: 전체 할당으로 시작한 다음 증분 할당

5 센티넬 모드의 세 가지 주요 작업: 모니터링, 알림, 자동 오류 마이그레이션

더 많은 Redis 지식을 보려면 redis에 주목하세요. 데이터베이스 튜토리얼 칼럼.

위 내용은 Redis 마스터-슬레이브 복제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 博客园에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Redis vs. SQL 데이터베이스 : 주요 차이점Redis vs. SQL 데이터베이스 : 주요 차이점Apr 25, 2025 am 12:02 AM

Redis와 SQL 데이터베이스의 주요 차이점은 Redis가 고성능 및 유연성 요구 사항에 적합한 메모리 데이터베이스라는 것입니다. SQL 데이터베이스는 관계형 데이터베이스로 복잡한 쿼리 및 데이터 일관성 요구 사항에 적합합니다. 구체적으로, 1) Redis는 고속 데이터 액세스 및 캐싱 서비스를 제공하고 캐싱 및 실시간 데이터 처리에 적합한 여러 데이터 유형을 지원합니다. 2) SQL 데이터베이스는 테이블 구조를 통한 데이터를 관리하고 복잡한 쿼리 및 트랜잭션 처리를 지원하며 데이터 일관성이 필요한 전자 상거래 및 금융 시스템과 같은 시나리오에 적합합니다.

Redis : 데이터 저장소 및 서비스 역할을하는 방법Redis : 데이터 저장소 및 서비스 역할을하는 방법Apr 24, 2025 am 12:08 AM

redisactsasbothadatastoreandaservice.1) asadatastore, itusesin-memorystorageforfastoperations, 지원을 지원합니다

Redis 대 기타 데이터베이스 : 비교 분석Redis 대 기타 데이터베이스 : 비교 분석Apr 23, 2025 am 12:16 AM

redis 与其他数据库相比 与其他数据库相比, 与其他数据库相比 : 1) 速度极快 速度极快 速度极快, 读写操作通常在微秒级别; 2) 支持丰富的数据结构和操作; 3) 灵活的使用场景 3) 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 灵活的使用场景 3) redis 또는 기타 데이터베이스를 선택할 때 특정 요구 사항과 시나리오에 따라 다릅니다. Redis는 고성능 및 저도가 낮은 응용 프로그램에서 잘 수행됩니다.

Redis의 역할 : 데이터 저장 및 관리 기능 탐색Redis의 역할 : 데이터 저장 및 관리 기능 탐색Apr 22, 2025 am 12:10 AM

Redis는 데이터 저장 및 관리에서 핵심적인 역할을하며 여러 데이터 구조 및 지속 메커니즘을 통해 현대 애플리케이션의 핵심이되었습니다. 1) Redis는 문자열, 목록, 컬렉션, 주문 컬렉션 및 해시 테이블과 같은 데이터 구조를 지원하며 캐시 및 복잡한 비즈니스 로직에 적합합니다. 2) RDB와 AOF의 두 가지 지속 방법을 통해 Redis는 신뢰할 수있는 스토리지 및 데이터의 빠른 복구를 보장합니다.

REDIS : NOSQL 개념 이해REDIS : NOSQL 개념 이해Apr 21, 2025 am 12:04 AM

Redis는 대규모 데이터의 효율적인 저장 및 액세스에 적합한 NOSQL 데이터베이스입니다. 1.Redis는 여러 데이터 구조를 지원하는 오픈 소스 메모리 데이터 구조 스토리지 시스템입니다. 2. 캐싱, 세션 관리 등에 적합한 매우 빠른 읽기 및 쓰기 속도를 제공합니다. 3. REDIS는 RDB 및 AOF를 통해 지속성을 지원하고 데이터 보안을 보장합니다. 4. 사용 예제에는 기본 키 값 쌍 작업 및 고급 수집 중복 제거 기능이 포함됩니다. 5. 일반적인 오류에는 연결 문제, 데이터 유형 불일치 및 메모리 오버플로가 포함되므로 디버깅에주의를 기울여야합니다. 6. 성능 최적화 제안에는 적절한 데이터 구조 선택 및 메모리 제거 전략 설정이 포함됩니다.

REDIS : 실제 사용 사례 및 예제REDIS : 실제 사용 사례 및 예제Apr 20, 2025 am 12:06 AM

실제 세계에서 Redis의 애플리케이션에는 다음이 포함됩니다. 1. 캐시 시스템으로서 데이터베이스 쿼리를 가속화, 2. 웹 응용 프로그램의 세션 데이터를 저장하려면 3. 실시간 순위를 구현하려면 메시지 전달을 메시지 큐로 단순화합니다. Redis의 다목적 성과 고성능은 이러한 시나리오에서 빛을 발합니다.

Redis : 기능과 기능을 탐색합니다Redis : 기능과 기능을 탐색합니다Apr 19, 2025 am 12:04 AM

Redis는 고속, 다양성 및 풍부한 데이터 구조로 인해 두드러집니다. 1) Redis는 문자열, 목록, 컬렉션, 해시 및 주문 컬렉션과 같은 데이터 구조를 지원합니다. 2) 메모리를 통해 데이터를 저장하고 RDB 및 AOF 지속성을 지원합니다. 3) Redis 6.0에서 시작하여 멀티 스레드 I/O 작업이 도입되어 동시 동시성 시나리오에서 성능이 향상되었습니다.

Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Apr 18, 2025 am 12:11 AM

redisisclassifiedasanoSqldatabaseBecauseItuseSakey-valuedatamodelinsteadofThraditionalRelationalDatabasemodel.Itoffersspeedandflexibility, makingIdealforreal-timeApplicationsandcaching, butitmaynotbesuitableforscenariosrequiringstrictaintetaintetaintetaintetaintetaintetaintegry

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경