2015-03-16 13 views
5

Có chức năng nào trong StackExchange.Redis cho phép bạn thực thi các lệnh thô trực tiếp không? Giống như tôi muốn cung cấp một chuỗi với lệnh, ví dụ: (Mã giả bên dưới):Các lệnh thô có sẵn trong StackExchange.Redis không?

conn.Send("ZADD mysortedset 1 john"); 

Tôi biết có những phương pháp có sẵn cho mọi lệnh bao gồm ZADD, nhưng đó không phải là vấn đề.

+1

Chỉ cần nói: điều này hiện đã thay đổi và có API cho việc này. Xem câu trả lời được cập nhật. –

Trả lời

7

Việc giới thiệu "mô-đun" khiến việc này liên quan nhiều hơn; API này hiện tồn tại trong Execute(...). Xem: http://blog.marcgravell.com/2017/04/stackexchangeredis-and-redis-40-modules.html


Trước đây:

Không hiện, và tôi sẽ không rõ ràng về lợi ích. Đặc biệt, làm điều này sẽ không cho phép định tuyến chính xác trên các cá thể phân đoạn (twemproxy, redis-cluster, vv), sẽ không cho phép sử dụng lại tên bản đồ, và sẽ không cho phép sử dụng các khóa/giá trị nhị phân. Nó cũng sẽ cho phép rất nguy hiểm và khái niệm phá các lệnh được sử dụng không thích hợp, chẳng hạn như select, watch/multi/exec, ngăn chặn-pops brpop/blpop/brpoplpush - tất cả trong số đó sẽ là thảm họa cho bộ dồn kênh (tốt, select isn' t một biggie, vì nó chỉ có thể được cấu hình như vậy mà Send lá db undefined - mã cho rằng đã tồn tại nhờ một số ví dụ tương tự). Nó cũng sẽ hiển thị các lệnh nguy hiểm cần không bao giờ được sử dụng từ thư viện chung: debug segfault, client pause, v.v. - một lần nữa, tất cả ý tưởng rất xấu. Tuy nhiên, trên lý thuyết nó có thể được thực hiện ... nhưng tôi sẽ thực sự muốn thấy một lý do thuyết phục để bù đắp nhiều vấn đề ở trên.

Hiện tại, cách tiếp xúc hiệu quả nhất để thực hiện các lệnh đặc biệt là qua ScriptEvaluate - nó sẽ liên quan đến việc viết Lua, tất nhiên.

+0

Đây là một trường hợp sử dụng: Tôi muốn gửi một lệnh OBB DEBUG tới Redis để xem giá trị của một khóa lớn. –

+0

@Daniel tbh Tôi nghĩ chúng tôi đã tiếp xúc với ĐỐI TƯỢNG DEBUG - chắc chắn chúng tôi sử dụng nó trong "opserver" cho phân tích db, nhưng: nó cũng tồn tại trong API Execute mới, được phát hành khoảng một tuần trước; http://blog.marcgravell.com/2017/04/stackexchangeredis-and-redis-40-modules.html –

Các vấn đề liên quan