Sobes.tech
Senior

Պատմեք ձեր առևտրային փորձի մասին PostgreSQL և Redis-ով։ Որ տարիից եք աշխատում, ինչ խնդիրներ եք լուծել։ Հրավիրում ենք հետաքրքիր դեպքեր։

sobes.tech AI

Պատասխան AI-ից

Ես աշխատում եմ PostgreSQL-ով 2016 թվականից, Redis-ով՝ 2018 թվականից։ PostgreSQL-ում ես լուծել եմ բարդ հարցումների օպտիմալացման, տվյալների բազայի սխեմաների նախագծման և տրանզակցիոն լոգիկայի իրականացման խնդիրներ։ Օրինակ, մի նախագծում ես օպտիմալացրի հարցումները՝ օգտագործելով ինդեքսներ և աղյուսակների բաժանում, ինչը նվազեցրեց արձագանքման ժամանակը մի քանի վայրկյանից մինչև հարյուրավոր միլիսեկունդ։

Redis-ով ես աշխատել եմ որպես կեշ և հաղորդագրությունների միջնորդ։ Մի դեպքում, ես իրականացրեցի արագության սահմանափակման համակարգ՝ Redis-ով, օգտագործելով ագրեգատիվ գործողություններ՝ INCR և EXPIRE՝ օգտագործողի հարցումների քանակը սահմանափակելու համար որոշ ժամանակահատվածում։

Go լեզվում Redis-ի համար արագության սահմանափակման օրինակ՝

import (
    "github.com/go-redis/redis/v8"
    "context"
    "time"
)

func rateLimit(ctx context.Context, rdb *redis.Client, key string, limit int, window time.Duration) (bool, error) {
    count, err := rdb.Incr(ctx, key).Result()
    if err != nil {
        return false, err
    }
    if count == 1 {
        rdb.Expire(ctx, key, window)
    }
    return count <= int64(limit), nil
}

Այս փորձը հնարավորություն է տալիս արդյունավետ օգտագործել երկու տեխնոլոգիաների հնարավորությունները՝ տարբեր խնդիրներ լուծելու համար։