Skip to content

Commit 4fd5be3

Browse files
committed
Add versioning to the hashmap functions when generating keys
1 parent ed27999 commit 4fd5be3

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

changelog.d/758.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Consider the version when generating keys to work with hashmap functions

django_redis/client/default.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,7 @@ def touch(
10991099

11001100
def hset(
11011101
self,
1102-
name: str,
1102+
name: KeyT,
11031103
key: KeyT,
11041104
value: EncodableT,
11051105
version: Optional[int] = None,
@@ -1111,13 +1111,14 @@ def hset(
11111111
"""
11121112
if client is None:
11131113
client = self.get_client(write=True)
1114+
key_name = self.make_key(name, version=version)
11141115
nkey = self.make_key(key, version=version)
11151116
nvalue = self.encode(value)
1116-
return int(client.hset(name, nkey, nvalue))
1117+
return int(client.hset(key_name, nkey, nvalue))
11171118

11181119
def hdel(
11191120
self,
1120-
name: str,
1121+
name: KeyT,
11211122
key: KeyT,
11221123
version: Optional[int] = None,
11231124
client: Optional[Redis] = None,
@@ -1128,39 +1129,44 @@ def hdel(
11281129
"""
11291130
if client is None:
11301131
client = self.get_client(write=True)
1132+
key_name = self.make_key(name, version=version)
11311133
nkey = self.make_key(key, version=version)
1132-
return int(client.hdel(name, nkey))
1134+
return int(client.hdel(key_name, nkey))
11331135

11341136
def hlen(
11351137
self,
1136-
name: str,
1138+
name: KeyT,
1139+
version: Optional[int] = None,
11371140
client: Optional[Redis] = None,
11381141
) -> int:
11391142
"""
11401143
Return the number of items in hash name.
11411144
"""
11421145
if client is None:
11431146
client = self.get_client(write=False)
1144-
return int(client.hlen(name))
1147+
key_name = self.make_key(name, version=version)
1148+
return int(client.hlen(key_name))
11451149

11461150
def hkeys(
11471151
self,
11481152
name: str,
1153+
version: Optional[int] = None,
11491154
client: Optional[Redis] = None,
11501155
) -> List[Any]:
11511156
"""
11521157
Return a list of keys in hash name.
11531158
"""
1159+
key_name = self.make_key(name, version=version)
11541160
if client is None:
11551161
client = self.get_client(write=False)
11561162
try:
1157-
return [self.reverse_key(k.decode()) for k in client.hkeys(name)]
1163+
return [self.reverse_key(k.decode()) for k in client.hkeys(key_name)]
11581164
except _main_exceptions as e:
11591165
raise ConnectionInterrupted(connection=client) from e
11601166

11611167
def hexists(
11621168
self,
1163-
name: str,
1169+
name: KeyT,
11641170
key: KeyT,
11651171
version: Optional[int] = None,
11661172
client: Optional[Redis] = None,
@@ -1170,5 +1176,6 @@ def hexists(
11701176
"""
11711177
if client is None:
11721178
client = self.get_client(write=False)
1179+
key_name = self.make_key(name, version=version)
11731180
nkey = self.make_key(key, version=version)
1174-
return bool(client.hexists(name, nkey))
1181+
return bool(client.hexists(key_name, nkey))

0 commit comments

Comments
 (0)