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?
Similar Code Examples
- Redis Sorted Set: Get Highest Score
- Redis Sorted Set: Create
- Redis Sorted Set: Get by Key
- Redis Sorted Set: Limit Size
- Redis Sorted Set: Same Score
- Redis Sorted Set: Sorting by Multiple Fields
- Redis Sorted Set TTL
- Redis Sorted Set: Sort by Date
- Redis Sorted Set: Expire Key
- Redis Sorted Set: Remove by Score
- Redis Sorted Set: Rate Limit
- Redis Sorted Set: Custom Order
Switch & save up to 80%
Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost