@@ -81,21 +81,17 @@ def set(self, key, value, expire=None, read=False, tag=None, retry=False):
8181 return False
8282
8383
84+ __set = set
85+
86+
8487 def __setitem__ (self , key , value ):
8588 """Set `key` and `value` item in cache.
8689
8790 :param key: key for item
8891 :param value: value for item
8992
9093 """
91- index = self ._hash (key ) % self ._count
92- set_func = self ._shards [index ].set
93-
94- while True :
95- try :
96- return set_func (key , value )
97- except Timeout :
98- continue
94+ self .__set (key , value , retry = True )
9995
10096
10197 def add (self , key , value , expire = None , read = False , tag = None , retry = False ):
@@ -224,6 +220,9 @@ def get(self, key, default=None, read=False, expire_time=False, tag=False,
224220 return default
225221
226222
223+ __get = get
224+
225+
227226 def __getitem__ (self , key ):
228227 """Return corresponding value for `key` from cache.
229228
@@ -232,9 +231,11 @@ def __getitem__(self, key):
232231 :raises KeyError: if key is not found
233232
234233 """
235- value = self .get (key , default = ENOVAL )
234+ value = self .__get (key , default = ENOVAL , retry = True )
235+
236236 if value is ENOVAL :
237237 raise KeyError (key )
238+
238239 return value
239240
240241
@@ -320,21 +321,20 @@ def delete(self, key, retry=False):
320321 return False
321322
322323
324+ __delete = delete
325+
326+
323327 def __delitem__ (self , key ):
324328 """Delete corresponding item for `key` from cache.
325329
326330 :param key: key for item
327331 :raises KeyError: if key is not found
328332
329333 """
330- index = self ._hash (key ) % self ._count
331- del_func = self ._shards [index ].__delitem__
334+ deleted = self .__delete (key , retry = True )
332335
333- while True :
334- try :
335- return del_func (key )
336- except Timeout :
337- continue
336+ if not deleted :
337+ raise KeyError (key )
338338
339339
340340 memoize = memoize
0 commit comments