1、提出问题:
1、什么是bigkey呢?
2、bigkey的存在会有哪些潜在的风险?
3、如何查找bigkey?
4、那么我们要如何避免bigkey的产生呢?
2、针对上面的问题,我们还是从源码中试着寻找一下答案。
1、涉及到的结构体
typedef struct {
char *name;
char *sizecmd;
char *sizeunit;
unsigned long long biggest;
unsigned long long count;
unsigned long long totalsize;
sds biggest_key;
} typeinfo;
typedef struct redisReply {
int type;
long long integer;
double dval;
size_t len;
char *str;
char vtype[4];
size_t elements;
struct redisReply **element;
} redisReply;
typedef struct redisContext {
const redisContextFuncs *funcs;
int err;
char errstr[128];
redisFD fd;
int flags;
char *obuf;
redisReader *reader;
enum redisConnectionType connection_type;
struct timeval *timeout;
struct {
char *host;
char *source_addr;
int port;
} tcp;
struct {
char *path;
} unix_sock;
struct sockadr *saddr;
size_t addrlen;
void *privdata;
} redisContext;