Kong Nan

Results 9 comments of Kong Nan

> 是的jdk21启动失败,而且不打印任何日志,可以把startup.sh中的任何地方的这两个参数去掉就ok -XX:+AggressiveOpts -XX:-UseBiasedLocking 额, 这样启动之后会有什么奇奇怪怪的问题吗? 如果是生产环境的话, 是不是还是最好java 11?

> The key and value have been unified into kvobj since [#13806](https://github.com/redis/redis/pull/13806), and the value is no longer stored as robj. The value will be embedded only when the length...

> `k` is stored as sdshdr5 Thanks for the clarification earlier! For context, I’m primarily a Java engineer and only recently started reading Redis’s C code—so I may be missing...

> It's these two lines. when len > ``` > char key_sds_type = sdsReqType(key_sds_len); > size_t key_sds_size = sdsReqSize(key_sds_len, key_sds_type); > ``` previous command ```bash 127.0.0.1:6379> set 123456789k123456789k123456789k123456789k k OK...

> ``` > # 16 (kvobj) + 1 (key-hdr-size) + 3 (sdshdr8) + 40 (key) + 1 (\0) + 1 (sdshdr5) + 1 (val) + 1 (\0) = 64bytes >...

Thanks for the clarification and for sharing the heuristic idea. I have a few concrete follow-ups I’d love to get clarity on: **1) embstr and cache-line “overshoot”** If we don’t...

@sundb Thanks for the detailed explanation! Just to make sure I understood everything correctly: 1. Embed values always use `sdshdr8+`. 2. Non-embed values follow the `sdsReqType()` result. https://github.com/redis/redis/blob/090ca801eab073376af0acb8750a1fc49604cbae/src/sds.c#L33-L36 3. Regarding...

> 3\. “spilling a few bytes beyond a cache line isn’t an issue” Building on the point that a small cache-line spill is fine: once we cross 64 B we’re...

Thanks! A few quick clarifications about option 2: > 2\. if not, when kvobj + key + value is less than 80, it can still be embed string. Why 80...