【BUG】 socketio:clear 命令异常, 当 redis 配置了 prefix 选项后,一定会出现清除失败!

Đang mở
#36 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
php, redis
Lĩnh vực
backend, databases

Hướng nghiên cứu

Bắt đầu bằng cách lần theo lệnh socketio:clear và cách các thao tác quét và xóa Redis của lệnh này xử lý các tiền tố đã cấu hình. Tái hiện sự cố với một tiền tố Redis, kiểm thử cả hành vi quét mặc định và Redis::SCAN_PREFIX. Hoàn tất khi lệnh tìm và xóa được các khóa cần thiết mà không áp dụng tiền tố hai lần.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Image

redis配置了前缀,并且 scan 配置了Redis::SCAN_PREFIX (其实配置不配置,都会出现问题,只要redis的options配置了前缀)

情况1:
当 scan 选项没有配置时,则scan默认为不加前缀,则调用 scan 命令获取不到keys,所以就没有清除的效果

情况2:
当 scan 选项配置为Redis::SCAN_PREFIX 时,则调用scan 命令能获取到keys, 但这些key是原始的key (添加了前缀), 则调用 del 命令会失败 (因为del也会自动添加前缀,就导致添加了两次前缀).

Ngôn ngữ chính
PHP
Star
26
Fork
6
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của hyperf/socketio-server

Tất cả issue của hyperf/socketio-server

Issue tương tự

Thêm issue về PHP

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.