Redis Sorted Set: Check Exists (Detailed Guide w/ Code Examples)

Use Case(s)

Checking if a specific member exists in a Redis sorted set is a common operation when managing ordered data like leaderboards, task queues, and scheduling systems.

Code Examples

Python

import redis r = redis.Redis(host='localhost', port=6379, db=0) def check_member_exists(sorted_set_name, member): return r.zrank(sorted_set_name, member) is not None # Example usage exists = check_member_exists('my_sorted_set', 'member1') print(exists)

Node.js

const redis = require('redis'); const client = redis.createClient(); function checkMemberExists(sortedSetName, member, callback) { client.zrank(sortedSetName, member, (err, rank) => { if (err) throw err; callback(rank !== null); }); } // Example usage checkMemberExists('my_sorted_set', 'member1', (exists) => { console.log(exists); });

Golang

package main import ( "fmt" "github.com/go-redis/redis/v8" "context" ) var ctx = context.Background() func checkMemberExists(client *redis.Client, sortedSetName string, member string) (bool, error) { rank, err := client.ZRank(ctx, sortedSetName, member).Result() if err == redis.Nil { return false, nil } if err != nil { return false, err } return rank >= 0, nil } func main() { rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", }) exists, err := checkMemberExists(rdb, "my_sorted_set", "member1") if err != nil { panic(err) } fmt.Println(exists) }

Best Practices

  • Always handle the potential for nil or errors when querying Redis to avoid runtime exceptions.
  • Use connection pooling for efficiency when dealing with Redis in high-throughput applications.

Common Mistakes

  • Forgetting to check for both nil and other possible errors.
  • Not using context timeouts when working with Redis in Golang, which can lead to resource leakage.

FAQs

Q: Why use zrank to check for existence instead of another command?

A: zrank provides an efficient way to determine if a member exists by checking its rank. If the member does not exist, it returns nil.

Was this content helpful?

Start building today

Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.