数据库
首页 > 数据库> > Redis中大小端存储分析

Redis中大小端存储分析

作者:互联网

大端与小端存储问题

在redis的Endianconv.c文件中提供了对于大小端的转换,redis 的所有存储方式都是小端存储,在endianconv.h中有一段大小端的宏定义,如果当前cpu的字节序为大端就进行相应的转换:

/* variants of the function doing the actual convertion only if the target
 * host is big endian */
#if (BYTE_ORDER == LITTLE_ENDIAN)  // 如果是小端存储,什么也不做
#define memrev16ifbe(p)
#define memrev32ifbe(p)
#define memrev64ifbe(p)
#define intrev16ifbe(v) (v)
#define intrev32ifbe(v) (v)
#define intrev64ifbe(v) (v)
#else	// 如果是大端存储的话对内存中的存储和值的表示进行一个大小端的转换
#define memrev16ifbe(p) memrev16(p)
#define memrev32ifbe(p) memrev32(p)
#define memrev64ifbe(p) memrev64(p)
#define intrev16ifbe(v) intrev16(v)
#define intrev32ifbe(v) intrev32(v)
#define intrev64ifbe(v) intrev64(v)
#endif

标签:小端,存储,Redis,大端,地址,内存,大小,define
来源: https://blog.csdn.net/li123_123_/article/details/92383307