Describe the bug Calling GEOSEARCHSTORE with src that points to an empty key will return an empty array (instead of an integer) and will not reset the destination key.

To reproduce

GEOADD destination 0 0 member
(integer) 1
GEOSEARCHSTORE destination source FROMLONLAT 0 0 BYRADIUS 1 km
(empty array)
ZCARD destination
(integer) 1

Expected behavior

GEOADD destination 0 0 member
(integer) 1
GEOSEARCHSTORE destination source FROMLONLAT 0 0 BYRADIUS 1 km
(integer) 0
ZCARD destination
(integer) 0

Comment From: enjoy-binbin

I guess it returned directly here: https://github.com/redis/redis/blob/unstable/src/geo.c#L522

void georadiusGeneric(client *c, int srcKeyIndex, int flags) {
    robj *storekey = NULL;
    int storedist = 0; /* 0 for STORE, 1 for STOREDIST. */

    /* Look up the requested zset */
    robj *zobj = NULL;
    if ((zobj = lookupKeyReadOrReply(c, c->argv[srcKeyIndex], shared.emptyarray)) == NULL ||
        checkType(c, zobj, OBJ_ZSET)) {
        return;
    }

GEORADIUS store also had the same issue

I tried to change it, here is my diff: https://github.com/redis/redis/compare/unstable...enjoy-binbin:issue_9261?expand=1 Doesn't feel elegant enough...