-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Closed
Labels
area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionshelp wantedUp for grabs. We would accept a PR to help resolve this issueUp for grabs. We would accept a PR to help resolve this issue
Milestone
Description
Timeline:
- redis 2.0 had
HSET key field valuefor setting individual hash fields, andHMSET key field value [field value ...]for setting multiple hash fields (against the same key); as you can see, there's a lot of overlap here - redis 4.0 observes this redundancy, and adds
HSET key field value [field value ...], and also marksHMSETas deprecated, although it still works fine RedisCachewants to set a hash with 3 fields against a single key; historically it has usedHMSETfor this (via Lua)- .NET 6 switches to using the non-deprecated
HSETAPI
Impact:
For users targeting redis versions that lack the varadic HSET (so: versions before 4.0), it simply doesn't work, manifesting in a RedisServerException:
Wrong number of args calling Redis command From Lua script
Suggestions:
- check the redis server version (APIs exist on SE-Redis for this) before deciding which to use
- or, just use
HMSET; it hasn't gone anywhere, and is honestly: unlikely to go anywhere - make 3 simple calls to
HSET, which would work everywhere and still be contiguous (thanks to the single-threaded core) - although I confess that this is inelegant
A complicating factor is that the Redis-64 port of Redis on Windows by Microsoft (now abandoned): stops at 3.0.503. Alternatives for Windows hosting are WSL or Memurai (commercial), or containers such as Docker. This means that some folks have (perhaps unwisely) stagnated on v3, wanting to keep things simple.
Links:
- relevant .NET 6 change: here
- existing aspnetcore bug, ccing @JunTaoLuo who closed it (I can't comment on the existing one)
- customer impact (being reported in the SE-Redis library)
NickCraver and dceravigupta
Metadata
Metadata
Assignees
Labels
area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionshelp wantedUp for grabs. We would accept a PR to help resolve this issueUp for grabs. We would accept a PR to help resolve this issue