Raba wakilin da aka fi amfani da shi kaɗan a cikin Redis ba tare da tsangwama ba
Yi amfani da jeri mai tsari da ɗan gajeren rubutun Lua don zaɓar da ƙara yawan rabon wakili tsakanin ma'aikata.
Lokacin da ma'aikata da yawa ke raba tafki ta Redis, jeri mai tsari na iya aiwatar da sauƙaƙan manufa: zaɓi wakilin da ya cancanta wanda ke da mafi ƙarancin rabon da aka rubuta. Ajiye sunan wakili a matsayin memba da yawan rabonsa a matsayin maki.
Ga tafkin da ke ba da buƙatun jama'a da aka yarda da su, jerin wakilai kyauta na iya samar da 'yan takarar ƙarshen wuri don auna su bisa ƙa'idodin cancantar tafkin. Fara membobin da suka cancanta da yawan farawa da aka amince da shi. Sannan sanya zaɓi da ƙari aiki ɗaya na gefen uwar garke:
local chosen = redis.call('ZRANGE', KEYS[1], 0, 0)[1]
if not chosen then
return nil
end
redis.call('ZINCRBY', KEYS[1], 1, chosen)
return chosenMika maɓallin jeri mai tsari a matsayin hujjar maɓalli ɗaya tilo ta rubutun ta hanyar mu'amalar EVAL ta abokin ciniki na Redis. Tafki mara komai yana haifar da sakamakon null wanda aikace-aikacen dole ya magance ba tare da yin buƙata ba.
Me ya sa a haɗa umarni biyu?
Keɓaɓɓun karatu da ƙari suna barin ma'aikata biyu su ga mafi ƙanƙanta ɗaya kafin kowa ya sabunta shi. Redis yana aiwatar da rubutun Lua gaba ɗaya, don haka wani ma'aikaci ba zai iya shigar da zaɓi tsakanin karatu da ƙarin wannan rubutun ba. Rage rubutun a takaice domin aiwatarwarsa na toshe sauran ayyukan Redis.
ZRANGE yana mayar da mafi ƙarancin maki da farko; daidaitattun maki ana warware su ta tsarin memba, ba da gangan ba. ZINCRBY yana ƙara makin memban da aka zaɓa da ɗaya don rabo na gaba.
Bayyana abin da maki ke nufi
Wannan yana ƙididdige rabo, ciki har da rabon da buƙatarsa ta hanyar sadarwa ta kasa daga baya. Ba ya auna jinkiri, buƙatun da suka yi nasara ko aikin da ake yi a yanzu. Har yanzu ana iya zaɓar memba tilo da ya cancanta akai-akai; rubutun ba ya tanade shi kaɗai.
Kula da cancanta ta ƙa'idodin lafiya da manufofin tafkin. Idan ka cire memba sannan ka dawo da shi daga baya, yanke shawara ko ya kamata a riƙe ƙididdigarsa ta tarihi. Fara wakilin da aka dawo da shi a sifili na iya tattara rabo a kansa yayin da yake murmurewa.
Manufar mafi ƙarancin lokaci ɗaya na buƙatar wata hanya ta rayuwa, ciki har da kammalawa da kula da ayyukan da aka watsar. Kada ka fassara wannan ƙididdiga mai tarawa a matsayin wannan hanyar rayuwa.