当我向redis写一些对象时,我可以得到不同的内存使用状态。我想知道这是怎么发生的。
简单的例子:
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> MEMORY usage a
(integer) 49
127.0.0.1:6379> set a "1"
OK
127.0.0.1:6379> MEMORY usage a
(integer) 49
127.0.0.1:6379> set a \x01 <<<< Message packed of number 1
OK
127.0.0.1
我变得非常熟悉:
UnicodeEncodeError:'ascii‘编解码器无法对位置24中的字符u'\xe8’进行编码:序数不在范围内(128)
我已经查看了SO上的多个帖子,他们推荐- variable.encode('ascii','ignore')
然而,这是不起作用的。即使在这之后,我也得到了同样的错误...
堆栈跟踪:
'ascii' codec can't encode character u'\x92' in position 18: ordinal not in range(128)
T
所有文档都指向Unicode支持,但我不认为我的请求与unicode有任何关系。我希望在单个标量的上下文中处理原始字节;我需要能够计算出它的长度(以字节为单位),取其子字符串(以字节为单位),将字节写入磁盘,以及通过网络。有没有一种简单的方法可以做到这一点,而不把字节当作perl中的任何编码?
编辑
更明确地说,
my $data = "Perl String, unsure of encoding and don't need to know";
my @data_chunked_into_1024_bytes_each = #???