웹마스터 팁

지난번 PHP 뮤텍스 락 설치법(memcached 활용) 을 공유드렸습니다.

사용하면서 memcached 가 안좋은 면이 발견되어 redis 로 전환하였습니다.

* 문제 : 커맨드 라인에서 인터럽트 시 memcached 재기동하기 전까지 해당 세션은 락을 계속 갖고 있는 문제 (웹브라우저 인터럽트 시에는 문제 없었으나 동일현상이 웹브라우저에서 발생할 여지가 완전히 없는 것인지 불확실)

* 대체 : redis 를 활용할 경우 위 문제 해결 (인터럽트 시 지정한 겟 락 허용 시간 초과 시 락 릴리즈 확인)

 

<설치과정>

1. redis 설치

(참고) https://www.lesstif.com/pages/viewpage.action?pageId=23757257

# yum install redis

# chkconfig redis on

# service redis start

 

2. redis 설치 후 동작 확인

# redis-cli ping

PONG <= 이라고 뜨면 정상 작동 중

 

3. php - redis 연동 설치

(참고) https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=81804

# wget https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip 

# unzip phpredis.zip 

# cd phpredis-phpredis-.../ <= 생성된 디렉토리로 이동

# phpize 

# ./configure --with-php-config=/usr/bin/php-config <= php-config 위치를 기입

# make 

# make install 

=> 출력되는 위치 확인해 두세요. (redis 모듈 위치)

# vi /etc/php.ini

--------------------

[redis] 

extension=/.../redis.so  <= 위 make install 에서 확인된 redis 모듈 경로를 기입하세요.

session.save_handler = redis  <= 기존 session.save_handler 가 활성화 되어 잇다면 주석

session.save_path    = "tcp://127.0.0.1:6379"   <= 기존 session.save_path 가 활성화 되어 잇다면 주석

--------------------

# service httpd restart   <= 아파치 재시작

 

4. redis mutex 설치

(참고) 

https://github.com/php-lock/lock#phpredismutex

lock

Popular PHP library for serialized execution of critical code in concurrent situations

Last updated: 2025-03-14T12:42:26Z

설치는 위 참고 사이트 참조하여 설치해 주세요.

 

5. 테스트

<?

require '위 4항 설치경로/vendor/autoload.php';

 

use malkusch\lock;

use malkusch\lock\mutex\PHPRedisMutex;

 

$redis = new Redis();

$redis->connect("localhost");

 

$mutex = new PHPRedisMutex([$redis], "balance", 30);   // <= (redis API 객체, 키, 타임아웃)

$para1 = "";

$mutex->synchronized(function () use ($para1) {   // <= 경합 진입

  echo "겟 락";

  sleep(10);

});   // <= 경합 탈출

echo "락 릴리즈";

?>

 

- 두 곳의 터미널에서 위 파일을 실행하면 경합이 정상적으로 이루어지는 것을 확인할 수 있습니다.

- 락을 잡고 있는 상태에서 인터럽트 발생 시 지정한 시간 이후 자동 락 릴리즈가 되는 것을 확인할 수 있습니다.

 

지금까지 redis 를 활용한 뮤텍스 포스팅 이었습니다.

 

 

 

제목 글쓴이 날짜
동탄오피 ⦑오피쓰주소.COM⦒ 동탄오피 동탄출장마사지 동탄오피 동탄OP koykoyah 2025.02.23
여의도마사지【오피쓰.COM】여의도마사지 여의도 마사지 여의도마사지 songkangkong767 2025.02.23
일산오피 ⦑오피쓰.COM⦒ 일산오피 일산출장마사지 일산오피 일산OP koykoyah 2025.02.23
목포오피 ⦑오피사이트.NET⦒ 목포OP 목포오피 목포출장샵 목포오피 koykoyah 2025.02.23
제주도1인샵【출장마사지안내.COM】제주도스웨디시 제주도안마 제주도마사지 songkangkong767 2025.02.23
판교오피 판교출장안마 ⦑출장안마사이트.COM⦒ 판교OP 판교오피 판교오피 koykoyah 2025.02.23
군산마사지【오피사이트.NET】군산마사지 군산 마사지 군산마사지 songkangkong767 2025.02.23
강북마사지【오피쓰.COM】강북마사지 강북 마사지 강북마사지 songkangkong767 2025.02.23
역삼1인샵【오피사이트.NET】역삼1인샵 역삼 1인샵 역삼1인샵 songkangkong767 2025.02.23
강서스웨디시【오피쓰.COM】강서마사지 강서1인샵 강서안마 songkangkong767 2025.02.23
안양스웨디시【오피쓰주소.COM】안양 스웨디시 안양스웨디시 안양스웨디시 songkangkong767 2025.02.23
충주스웨디시【출장안마사이트.COM】충주스웨디시 충주 스웨디시 충주스웨디시 songkangkong767 2025.02.23
남양주오피 남양주OP ⦑출장안마사이트.COM⦒ 남양주휴게텔 남양주오피 남양주오피 koykoyah 2025.02.23
평촌스웨디시【오피.CLUB】평촌 스웨디시 평촌스웨디시 평촌스웨디시 songkangkong767 2025.02.23
영등포오피 영등포OP ⦑출장안마사이트.COM⦒ 영등포휴게텔 영등포오피 영등포오피 koykoyah 2025.02.23
수원1인샵【오피사이트.NET】수원스웨디시 수원마사지 수원안마 songkangkong767 2025.02.23
부산오피 부산오피 ⦑출장마사지안내.COM⦒ 부산OP 부산스파 부산오피 koykoyah 2025.02.23
대구마사지【출장마사지안내.COM】대구스웨디시 대구1인샵 대구안마 songkangkong767 2025.02.23
서면오피 ⦑출장마사지안내.COM⦒ 서면오피 서면OP 서면건마 서면오피 koykoyah 2025.02.23
남양주마사지【오피.CLUB】남양주안마 남양주스웨디시 남양주1인샵 songkangkong767 2025.02.23