【问题标题】:memcached set not stored未存储的 memcached 集
【发布时间】:2017-04-27 07:17:30
【问题描述】:

接下来的步骤是:

telnet localhost 11211
set Test 0 100 10
get Test 
CLIENT_ERROR bad data chunk
ERROR
set amit 2 2 2 
get amit 
CLIENT_ERROR bad data chunk
ERROR

【问题讨论】:

    标签: memcached libmemcached


    【解决方案1】:

    在我的情况下,我提供了值,但字节与我在 set 命令中提到的不完全一样,因为命令的格式是:

    set KEY META_DATA EXPIRY_TIME LENGTH_IN_BYTES
    

    所以对于那些只是复制粘贴命令而不知道它为什么不存储密钥并来到这里寻求答案的人来说,这可能会有所帮助:

    您需要提供与您在 set 命令的最后一个参数中提到的完全相同的字节值

    以下内容不起作用:

    以下也不会:

    因此,当您输入值时,它必须是完全相同的字节,如下所示:

    【讨论】:

      【解决方案2】:

      ‘set Test 0 100 10’,然后输入一个长度等于10的值。

      【讨论】:

        【解决方案3】:

        虽然您没有提出具体问题,但我认为您想存储一个值。 您可以使用 Memcached 手册中的默认示例进行测试。

        您定义要存储一个键,但没有指定一个值。

        以下示例指定您要保存键“tutorialspoint”、无标志、超时 900 并为值保留 9 个字节。这 9 个字节在下一行中指定:“memcached”。在您的示例中,我没有看到值。

        set tutorialspoint 0 900 9
        memcached
        STORED
        
        get tutorialspoint
        VALUE tutorialspoint 0 9
        memcached
        
        END
        

        【讨论】:

        • 如何去除错误“CLIENT_ERROR bad data chunk”。
        • 如我所说。使用“set Test 0 100 10”,您可以指定接下来的 10 个字符将包含该值,但您不提供值。因此,您不会收到“已存储”的确认信息。尽管您没有设置值,但您仍然尝试检索某些内容。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 2015-06-19
        • 2018-12-09
        相关资源
        最近更新 更多