summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/networking.c4
-rw-r--r--src/redis.c1
-rw-r--r--src/redis.h2
3 files changed, 6 insertions, 1 deletions
diff --git a/src/networking.c b/src/networking.c
index fa3e5ccce..99e61de33 100644
--- a/src/networking.c
+++ b/src/networking.c
@@ -83,6 +83,7 @@ redisClient *createClient(int fd) {
}
selectDb(c,0);
+ c->id = server.next_client_id++;
c->fd = fd;
c->name = NULL;
c->bufpos = 0;
@@ -1302,7 +1303,8 @@ sds catClientInfoString(sds s, redisClient *client) {
if (emask & AE_WRITABLE) *p++ = 'w';
*p = '\0';
return sdscatfmt(s,
- "addr=%s fd=%i name=%s age=%I idle=%I flags=%s db=%i sub=%i psub=%i multi=%i qbuf=%U qbuf-free=%U obl=%U oll=%U omem=%U events=%s cmd=%s",
+ "id=%U addr=%s fd=%i name=%s age=%I idle=%I flags=%s db=%i sub=%i psub=%i multi=%i qbuf=%U qbuf-free=%U obl=%U oll=%U omem=%U events=%s cmd=%s",
+ (unsigned long long) client->id,
getClientPeerId(client),
client->fd,
client->name ? (char*)client->name->ptr : "",
diff --git a/src/redis.c b/src/redis.c
index ca4fd7d1a..18e02fd01 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -1451,6 +1451,7 @@ void initServerConfig() {
server.lua_client = NULL;
server.lua_timedout = 0;
server.migrate_cached_sockets = dictCreate(&migrateCacheDictType,NULL);
+ server.next_client_id = 1; /* Client IDs, start from 1 .*/
server.loading_process_events_interval_bytes = (1024*1024*2);
server.lruclock = getLRUClock();
diff --git a/src/redis.h b/src/redis.h
index 4d987d879..d16933d59 100644
--- a/src/redis.h
+++ b/src/redis.h
@@ -492,6 +492,7 @@ typedef struct readyList {
/* With multiplexing we need to take per-client state.
* Clients are taken in a liked list. */
typedef struct redisClient {
+ uint64_t id; /* Client incremental unique ID. */
int fd;
redisDb *db;
int dictid;
@@ -655,6 +656,7 @@ struct redisServer {
mstime_t clients_pause_end_time; /* Time when we undo clients_paused */
char neterr[ANET_ERR_LEN]; /* Error buffer for anet.c */
dict *migrate_cached_sockets;/* MIGRATE cached sockets */
+ uint64_t next_client_id; /* Next client unique ID. Incremental. */
/* RDB / AOF loading information */
int loading; /* We are loading data from disk if true */
off_t loading_total_bytes;