Can I use JSON and Search (like RedisJSON, RediSearch)?

@praiseworthy-antelop hi. Are you using Dragonfly by any chance?

nope, as I wasn’t able to use it for what I needed

I don’t believe the search part was ever implemented, was it?

It’s in the works. Wanted to ask you whether you can help is with that.

If you use RedisSearch, could you share your dataset with us, together with search query stream?

@praiseworthy-antelop that would help us with evaluating performance/correctness issues

I don’t actually, redis didn’t fit my usecase either because of being single threaded and clustering was kinda complex that I lacked time so I no longer use it

But I could get an example I guess

Here’s how I do it in JS:

Set:

await redis.json.set(`guilds:${guildOrId}`, '$', guild);

Get:

await redis.json.get(`guilds:${id}`)

Index creation:

redis.ft
    .CREATE(
        'index:guilds',
        {
            '$.id': {
                type: SchemaFieldTypes.TEXT,
                AS: 'id',
                SORTABLE: true,
            },
            '$.icon': {
                type: SchemaFieldTypes.TEXT,
                AS: 'icon',
            },
            '$.memberCount': {
                type: SchemaFieldTypes.NUMERIC,
                AS: 'memberCount',
                SORTABLE: true,
            },
            '$.name': {
                type: SchemaFieldTypes.TEXT,
                AS: 'name',
                SORTABLE: true,
            },
            '$.ownerId': {
                type: SchemaFieldTypes.TEXT,
                AS: 'ownerId',
                SORTABLE: true,
            },
            '$.shardId': {
                type: SchemaFieldTypes.NUMERIC,
                AS: 'shardId',
                SORTABLE: true,
            },
            '$.toggles': {
                type: SchemaFieldTypes.TEXT,
                AS: 'toggles',
                SORTABLE: true,
            },
            '$.lastInteractedTime': {
                type: SchemaFieldTypes.NUMERIC,
                AS: 'lastInteractedTime',
                SORTABLE: true,
            },
        },
        {
            ON: 'JSON',
            PREFIX: 'guilds',
        }
    )```

Do you still need a sample data or should the index be fine?

Can you tell he what’s the size of the data and what exactly did not work for you with Redis?

I would like to reproduce the problem with Redis first so we could verify we solve it in Dragonfly

Could you ping me whenever you reply please, as I forget to check the server

Scaling, it was single threaded or something so I couldn’t get it to work without clustering and I didn’t feel like learning how to cluster and all

(replying with mention also works (@ON if you dk))

@praiseworthy-antelop We are planning to release search functionality. Would you like to try it out?

I’d have to start from first, setting up dragonfly, coding the get, set etc. stuff (I might have an old commit lying somewhere I guess so have to find) but I can try it out and see if it matches my needs and if it does, I can try to get it in prod and see if it survives that

(I don’t use redis either currently so it requires time to setup and stuff)

Do you know how it would perform if I do like ~5m set suddenly every 5s for like a minute (and then pretty much very less sets but probably more gets and searches), would it be entirely based on the cpu’s performance and automatically be split through diff cores for it to do it? (tried to see a rough estimation of how my previous implementation would work currently)

what do you mean ~5m set ? I do not understand you @praiseworthy-antelop

Oh I meant 5 million set operations