Introducing Dragonfly Cloud! Learn More

Checking if a Key Exists in Redis using PHP (Detailed Guide w/ Code Examples)

Use Case(s)

In Redis, checking if a key exists is quite commonly done while retrieving values from Redis cache. If your application is written in PHP, you might need to check whether a key exists before trying to retrieve its value to avoid possible errors or exceptions.

Code Examples

Let's assume you're already connected to your Redis instance. Here's an example demonstrating how to check if a key exists.

$redis = new Redis(); $redis->connect('', 6379); $key = 'testKey'; if($redis->exists($key)) { echo "Key exists"; } else { echo "Key does not exist"; }

In this code, we're first creating a new instance of the Redis class and connecting to the local Redis server. We then use the exists method to check if the key 'testKey' exists. If it does, we print 'Key exists', else we print 'Key does not exist'.

Best Practices

  • Always handle potential connection errors when working with Redis. Your application should be able to respond appropriately if the Redis server is down or unreachable.
  • Avoid frequent calls to exists. Instead consider using Redis transactions (MULTI/EXEC commands) or Lua scripting for complex atomic operations.

Common Mistakes

  • Don't forget that the exists function returns the number of keys existing among those specified as arguments. So always checking it in boolean context might not give the expected results if you are checking multiple keys at once.
  • Requesting a non-existent key from Redis will not provide an error; it will return null. Therefore, always check if a key exists before trying to get its value.


Q: Can I use wildcards with the exists function?

A: No, the exists function doesn't support patterns or wildcards. If you need to check for keys following a certain pattern, consider using the keys command first, and then check for existence for each key.

Was this content helpful?

Start building today 

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