首页 » 网站推广 » phpredis中文乱码技巧_Redis数据结构value类型 string

phpredis中文乱码技巧_Redis数据结构value类型 string

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

1.key里面有个基本属性type,描述的是value的类型(即数据类型)官网:https://redis.io/commands/type/命令:type k1 //查看指定key(比如:k1)的value类型

2.查看Redis某个key的内部编码,可以利用Redis命令OBJECT ENCODING key,返回存储在<key>的Redis工具的内部编码。
官网:https://redis.io/commands/object-encoding/命令:help objectobject helpobject encoding k1FLUSHALL // 移除所有key

phpredis中文乱码技巧_Redis数据结构value类型  string

Redis源码encoding取值有如下几种:#define OBJ_ENCODING_RAW 0 / Raw representation /#define OBJ_ENCODING_INT 1 / Encoded as integer /#define OBJ_ENCODING_HT 2 / Encoded as hash table /#define OBJ_ENCODING_ZIPMAP 3 / Encoded as zipmap /#define OBJ_ENCODING_LINKEDLIST 4 / No longer used: old list encoding. /#define OBJ_ENCODING_ZIPLIST 5 / Encoded as ziplist /#define OBJ_ENCODING_INTSET 6 / Encoded as intset /#define OBJ_ENCODING_SKIPLIST 7 / Encoded as skiplist /#define OBJ_ENCODING_EMBSTR 8 / Embedded sds string encoding /#define OBJ_ENCODING_QUICKLIST 9 / Encoded as linked list of ziplists /

数据类型type

phpredis中文乱码技巧_Redis数据结构value类型  string
(图片来自网络侵删)

编码办法encoding(工具所利用的底层数据构造)

Strings (字符串)

int、embstr、raw

Hashes (哈希表)

ziplist、hashtable

Lists (列表)

ziplist、linkedlist、quicklist

Sets (凑集)

intset、hashtable

Sorted Sets (有序凑集)

ziplist、skiplist

字符串

字符串是Redis中最基本的数据类型,常日用于存储文本或二进制数据。
Redis支持三种编码办法:

int:当字符串可以表示为整数时,Redis会将其转换为整数,并采取int编码办法存储。
int编码办法的优点是存储空间小,操作效率高。
缺陷是只能存储整数,不支持字符串操作。
embstr:初始写入长度小于44字节(默认)的字符串,采取此编码办法存储,可以减少内存占用。
由于初始设置保存时分配在与工具本身相同的内存中。
raw:保存长度大于44字节的字符串,当一个字符串比较永劫,采取此编码办法存储。

列表

列表是一系列有序的字符串凑集,可以添加、修正和删除元素。
Redis支持三种编码办法:

ziplist:在Redis3.2版本之前,当List列表中每个字符串的长度都小于64字节并且List列表中元素数量小于512个时,List工具利用ziplist编码,其他情形利用linkedlist编码。
ziplist是一种紧凑的、压缩的列表构造,可以节省内存。
适用于小型列表。
linkedlist:linkedlist是一种链表构造,支持任意大小的列表。
但其内存占用会随着列表长度的增加而增加。
quicklist:Redis 3.2版本引入,quicklist是一种由多个ziplist组成的列表构造,既能担保性能,又能节省内存。
适用于大型列表。

凑集

凑集是一系列无序的字符串凑集,支持添加、删除和查询元素。
Redis支持两种编码办法:

intset:当凑集中的元素都是整数时,Redis会采取intset编码办法存储。
intset编码办法的优点是存储空间小,操作效率高。
hashtable:当凑集中的元素包含字符串时,Redis会采取hashtable编码办法存储。
hashtable编码办法的优点是可以存储任意类型的元素,支持字符串操作。
缺陷是存储空间相对较大,操作效率相对较低。

有序凑集

有序凑集是一系列无序的字符串凑集,每个元素关联一个分数,可以根据分数排序。
Redis支持两种编码办法:

ziplist:保存的元素少于128个并且所有元素大小都小于64字节利用ziplist编码,ziplist是一种紧凑的、压缩的列表构造,适用于小型有序凑集。
skiplist:skiplist是一种跳跃表构造,支持快速查询和排序。
适用于大型有序凑集。

哈希表

哈希表是一系列键值对凑集,每个键关联一个值。
Redis支持两种编码办法:

ziplist:哈希工具保存的所有键值的字符串长度小于64字节并且键值对数量小于512个,Redis会采取ziplist编码办法存储。
ziplist编码办法的优点是存储空间小,操作效率高。
缺陷是不支持快速的键查找操作。
hashtable:除上述条件之外,Redis会采取hashtable编码办法存储。
hashtable编码办法的优点是支持快速的键查找操作。
缺陷是存储空间相对较大,操作效率相对较低。

二进制安全

redis是二进制安全的,redis的数据存储和读取是通过字节流的形式。
在多措辞中的环境下,更安全。
同时也哀求了写入和读取的编码解码办法要同等。

①:由于在不同的措辞中对int的宽度的理解是不同的,以是一样平常来讲跨措辞都比较喜好实用json,xml这种文本的传输,而不该用序列化,由于随意马虎发生数据的溢出截断。
由于这种情形,redis的二进制安全便是这种意思,redis只取字节流而不取字符流,由于编码、措辞的不同造成的数据截断等情形不会发生,给什么存什么,不会发生字节流转换字符流涌现溢出阶段,以是读取的时候客户真个编码和redis的编码同等就不会乱码,但内容实际上不会发生改变,即存的时候的编码风格只不过看的时候由于编码不一致而乱码,担保了数据存储的安全。
②:key有type和encoding 两个过程: 1)前辈行type:value的过程,如果类型不对报错,防止程序中进行打算再涌现字符串和数值相加的非常2)再进行endcoding,防止后续字节流转换字符流打算问题,提速 当设置了一个key的value为int时,就会标记这个value为int,下次调用incr等打算时就直接判断encoding,就不须要转码,而是判断类型如果不得当打算就报错了,直接进入打算,这也便是redis快的一个缘故原由,跳过了一个转码过程③:以是在多人客户端连接一个redis时,客户端之间要沟通好编码解码

--raw编码集格式化,利用原始格式,会选择当前的客户端编码进行解码。

bitmap

linux下操作命令:

man ascii // linux命令,查看ascii码help @stringhelp setbitsetbit key offset valuehelp bitposbitpos key bit [start] [end] // 查找第一个bit(0或1)所在的位索引位置,start、end表示字节索引位置help bitcountBITCOUNT key [start end] // 统计位是1的个数help bitopBITOP operation destkey key [key ...] // 举例 bitop and newKey k1 k2表示k1和k2的value值按位与操作,写入newKey键里。

标签:

相关文章

DLL编程,揭开动态链接库的神秘面纱

在计算机编程领域,动态链接库(DLL)作为一种重要的资源,已经深入人心。本文将揭开DLL编程的神秘面纱,探讨其原理、应用及优势,以...

网站推广 2024-12-28 阅读0 评论0

DLL转换音,数字化时代的语言艺术

在数字化时代的浪潮中,语言技术的创新与变革正在不断推动着人类社会的进步。DLL转换音,作为一种新兴的语言处理技术,正以其独特的魅力...

网站推广 2024-12-28 阅读0 评论0

网络语言教学,变革中的教育新趋势

随着互联网技术的飞速发展,网络语言教学逐渐成为教育领域的一股新势力。作为一种新型的教学模式,网络语言教学以其独特的优势,改变了传统...

网站推广 2024-12-28 阅读0 评论0

网页常用语言的发展与未来趋势

随着互联网技术的飞速发展,网页已成为人们获取信息、交流互动的重要平台。网页的设计与开发离不开编程语言的支持。本文将分析网页常用语言...

网站推广 2024-12-28 阅读0 评论0

网络语言中的括号符号,沟通的艺术与智慧

在互联网时代,网络语言如雨后春笋般涌现,其中括号符号的使用尤为引人注目。它不仅丰富了语言表达,还成为沟通中的一种独特艺术。本文将从...

网站推广 2024-12-28 阅读0 评论0

网络新风尚,xy网络语言的崛起与影响

随着互联网的普及,网络语言逐渐成为人们交流的重要方式。在众多网络语言中,xy网络语言以其独特的魅力和丰富的内涵,吸引了大量年轻人的...

网站推广 2024-12-28 阅读0 评论0