Redis XSETID in PHP (Detailed Guide w/ Code Examples)

Use Case(s)

The XSETID command in Redis is typically used with streams to set the ID value of a stream. This is particularly useful when you want to manually control the ID rather than allowing Redis to automatically increment it.

Code Examples

Let's assume we have a Redis instance running and accessible on localhost:6379 and we're using the Predis client for PHP.

Here's an example of how you would create a stream and use XSETID.

<?php require 'vendor/autoload.php'; $client = new Predis\Client(); // Creating a stream named mystream. $client->xadd('mystream', '*', ['field1' => 'value1']); // Setting the ID of the stream to 1000. $client->rawCommand('XSETID', 'mystream', 1000); ?>

In this example, we first created a stream called 'mystream' using the XADD command. Then, we used the XSETID command to set the stream's ID to 1000. The rawCommand method is used as XSETID is not directly supported by Predis.

Best Practices

  • It's important to note that you cannot set the ID of a stream to a value less than or equal to any existing entry in the stream. Attempting to do so will result in an error.

Common Mistakes

  • One common mistake is to try to set the ID of a non-existent stream. Make sure that the stream exists before attempting to set its ID.


Q: What happens if I try to set the ID to a value that is less than or equal to an existing ID?

A: Redis will throw an error. The ID must always be greater than the ID of any existing entry.

Q: Can I use XSETID on a non-existent stream?

A: No, you cannot. The stream must exist before you can set its ID.

Was this content helpful?

Start building today

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