首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C#

    Apple的LZF算法解析

        有关LZF算法的相关解析文档比较少,但是Apple对LZF的开源,可以让我们对该算法进行一个简单的解析。LZFSE 基于 Lempel-Ziv ,并使用了有限状态熵编码。 LZF采用类似lz77和lzss的混合编码。使用3种“起始标记”来代表每段输出的数据串。     接下来看一下开源的LZF算法的实现源码。       } while (iidx < inputLength); return (int)oidx; }     以上是LZF

    2.5K70发布于 2018-01-04
  • 来自专栏硬核项目经理的专栏

    PHP的LZF压缩扩展工具

    LZF 扩展直接在 phar.php.net 下载安装即可,也是走得正常的 PHP 的扩展安装的步骤。LZF 压缩算法基于 Lempel-Ziv ,并使用了有限状态熵编码。 echo lzf_optimized_for(), PHP_EOL; // 1 // 如果LZF针对速度进行了优化,则返回1;对于压缩,则返回0。 LZF 全部就只提供了这三个非常简单的函数。 lzf_compress() 用于对字符串进行压缩编码,可以看出我们输出的压缩之后的内容已经变成了乱码的形式。但是相对于 Bzip2 完全看不懂的编码内容来说,LZF 是可以看到原文的一部分内容的。 lzf_decompress() 用于解码已经编码的字符串内容。 lzf_optimized_for() 输出的是 LZF 扩展的编译后运行状态,如果返回的是 1 ,则表明针对当前系统的速度进行了优化,如果返回的是 0 ,表示的是仅仅是进行了压缩编码。

    1.2K30发布于 2020-10-10
  • 来自专栏腾讯云数据库专家服务

    如何使用rdbtools分析redis大key

    /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf -I/usr/include/python3.6m -c lzf_module.c -o build/temp.linux-x86_64-3.6/lzf_module.o -Wall gcc: /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf -I/usr/include/python3.6m -c lzf_module.c -o build/temp.linux-x86_64-3.6/lzf_module.o -Wall lzf_module.c /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf

    3.7K40发布于 2021-03-18
  • 来自专栏summerking的专栏

    服务器终端乱码问题

    这里扩展一下如何解析redis的rdb文件 点击查看 PS C:\Users\Administrator\Desktop\fsdownload> pip install rdbtools python-lzf Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting python-lzf Downloading https python\python37\lib\site-packages (from rdbtools) (3.3.2) Using legacy 'setup.py install' for python-lzf Installing collected packages: rdbtools, python-lzf Running setup.py install for rdbtools ... done Running setup.py install for python-lzf ... done Successfully installed python-lzf-0.2.4 rdbtools

    1.9K50编辑于 2022-10-27
  • 来自专栏数据结构与算法

    CDQZ 0003:jubeeeeeat

    总时间限制: 1000ms 内存限制: 256000kB描述 众所周知,LZF很喜欢打一个叫Jubeat的游戏。 LZF觉得这太简单了,于是自己仿了个游戏叫Jubeeeeeat,唯一不同之处就是界面大小,Jubeeeeeat的界面为n×n的方阵。 在某一刻,界面同时出现了若干个combo。 LZF终于觉得有些困难了,但毕竟LZF不是普通人,他有很多只手。LZF的手分为m只“肉质手”和q只“意念手”。 顾名思义,“肉质手”是实际存在的手,每只肉质手都有5根手指,每根手指能按一个combo,但每只手的速度都不同,受限于此,LZF的每只肉质手的控制范围是一个固定大小的正方形。 现在LZF想知道,他最多能按下多少个combo。 输入输入文件名为 jubeeeeeat.in。  第1行输入三个正整数n,m,q。

    70060发布于 2018-04-11
  • 来自专栏SEian.G学习记录

    使用rdbtools工具来解析redis rdb文件

    To install, run the following command: pip install python-lzf ? 从报错信息看,是由于缺少python-lzf包,根据提示直接使用pip install python-lzf命令进行安装 解决方法: # 在安装python-lzf之前,要安装python-devel依赖包 centos yum.repos.d]# yum install python-devel [root@VM_54_118_centos yum.repos.d]# pip install python-lzf /packages/e3/33/b8f67bbe695ccc39f868ae55378993a7bde1357a0567803a80467c8ce1a4/python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf ... done Successfully

    9.4K21发布于 2021-03-03
  • 来自专栏腾讯云智能顾问

    【最佳实践】如何使用rdbtools分析redis大key

    /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf -I/usr/include/python3.6m -c lzf_module.c -o build/temp.linux-x86_64-3.6/lzf_module.o -Wall gcc: /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf -I/usr/include/python3.6m -c lzf_module.c -o build/temp.linux-x86_64-3.6/lzf_module.o -Wall lzf_module.c /python-lzf-0.2.4.tar.gz Installing collected packages: python-lzf Running setup.py install for python-lzf

    3.7K42编辑于 2022-04-14
  • 来自专栏CSDN搜“看,未来”

    【redis源码学习】快速列表 quicklist

    采用无损压缩算法:LZF算法。 /* quicklistLZF is a 4+N byte struct holding 'sz' followed by 'compressed'. * 'compressed' is LZF data with total (compressed) length 'sz' * NOTE: uncompressed length is stored compressed, node->zl points to a quicklistLZF */ typedef struct quicklistLZF { unsigned int sz; /* LZF * encoding: 2 bits, RAW=1, LZF=2. * container: 2 bits, NONE=1, ZIPLIST=2. 位于lzf_c.c 和 lzf_d.c,有兴趣的朋友可以自己去看。 讲真,我看不懂。

    66830编辑于 2021-12-24
  • 来自专栏iSharkFly

    Druid 加载 Kafka 流数据的 索引属性(IndexSpec)

    对象,请参考 Bitmap types 来了解更多 N(默认=Roaring) dimensionCompression String 针对维度(dimension)列使用的压缩算法,请从 LZ4, LZF N(默认= LZ4) metricCompression String 针对主要类型 metric 列使用的压缩算法,请从 LZ4, LZF,或者 uncompressed 中选择。

    72320发布于 2021-08-12
  • 来自专栏tkokof 的技术,小趣及杂念

    Unity 中进行数据压缩的一种方法

    实际上我们只要自己实现一种较通用的数据压缩方法就可以做到了,并且之前已经有人这么去做了,相关的讨论可以看这里,其中提及的源码可以直接使用(实现了LZF算法),代码不长,我简单调整了一下,如下所示: /* version * of this file under either the BSD or the GPL. */ using System; ///

    /// Improved C# LZF public static byte[] Compress(byte[] inputBytes, byte[] compressBuffer) { var byteCount = lzf_compress static byte[] Decompress(byte[] inputBytes, byte[] decompressBuffer) { var byteCount = lzf_decompress > /// <returns>The size of the compressed archive in the output buffer</returns> static int lzf_compress

    1.6K10发布于 2020-01-15
  • 来自专栏小工匠技术圈

    【Java小工匠聊高并发】--CountDownLatch

    2、CountDownLatch 实现 2.1 模拟班主任等学生 package lzf.juc; import java.util.Random; import java.util.concurrent.CountDownLatch 代码实现 package lzf.juc; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit package lzf.juc; import java.util.Random; import java.util.concurrent.CountDownLatch; /** * @author int bnum = new Random().nextInt(5) ; int cnum = new Random().nextInt(5) ; 完整代码 package lzf.juc; import

    46030发布于 2018-08-10
  • 来自专栏兜兜毛毛

    Redis List(3)

    * encoding: 2 bits, RAW=1, LZF=2. * container: 2 bits, NONE=1, ZIPLIST=2. count : 16; /* 当前ziplist中存储了多少个元素,占16bit(下同),最大65536个 */ unsigned int encoding : 2; /* 是否采用了LZF 压缩算法压缩节点,1:RAW2:LZF */ unsigned int container : 2; /* 2:ziplist,未来可能支持其他结构存储 */ unsigned int

    71120发布于 2020-03-19
  • 来自专栏Java快速进阶通道

    不是吧?为了加快速度,Redis竟做了这么“疯狂”的设计

    unsigned int count : 16;//ziplist中存储的元素个数,16字节(最大65535个) unsigned int encoding : 2; //是否采用了LZF 压缩算法压缩节点 1:RAW 2:LZF unsigned int container : 2; //存储结构,NONE=1, ZIPLIST=2 unsigned int recompress 为了加快速度,Redis竟做了这么“疯狂”的设计 quicklist 的 compress 属性 compress 是用来表示压缩深度,ziplist 除了内存空间是连续之外,还可以采用特定的 LZF quicklistNode 的 zl 指针 zl 指针默认指向了 ziplist,上面提到 quicklistNode 中有一个 sz 属性记录了当前 ziplist 占用的字节,不过这仅仅限于当前节点没有被压缩(通过LZF quicklistLZF 是一个 4+N 字节的结构: typedef struct quicklistLZF { unsigned int sz;// LZF大小,占用4字节 char

    44410发布于 2021-01-26
  • 来自专栏超前沿网络空间安全全栈学习宝典

    2024 RedisAnd Mysql基础与进阶操作系列(14)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]

    指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大 rdbcompression yes 补充说明RedisZ 中的LZF压缩: LZF 压缩的主要特点和工作原理: 特点 速度快:LZF 主要设计目标是压缩和解压缩速度快,适合实时应用。 工作原理 字典匹配:LZF 通过使用已存在数据的字典进行匹配,找到重复的数据块,从而进行压缩。 动态数据块处理:对于不同大小的数据块,LZF 动态调整压缩策略,以达到最佳性能 11.

    25610编辑于 2024-10-22
  • 来自专栏暴走大数据

    你确定不来了解一下Redis中List的原理吗

    //quicklistNode节点的个数 int compressDepth; //压缩算法深度 ... } 为了节约空间 Redis 还会对 ziplist 使用 LZF 大小 int16 count; //ziplist 中元素数量 int2 encoding; //编码形式 存储 ziplist 还是进行 LZF 上面说到 ziplist 可以使用 LZF 算法压缩,通过list-compress-depth配置.默认情况下quicklist 的压缩深度是 0,也就是不压缩.配置为 1 的话代表从头/尾开始第 1

    1.3K40发布于 2019-08-08
  • 来自专栏DawnSql

    H2存储内核分析一

    MVStore.Builder(); builder.encryptionKey("my_h2".toCharArray()); /** * 使用 LZF MVStore.Builder(); builder.encryptionKey("my_h2".toCharArray()); /** * 使用 LZF MVStore.Builder(); builder.encryptionKey("my_h2".toCharArray()); /** * 使用 LZF MVStore.Builder(); builder.encryptionKey("my_h2".toCharArray()); /** * 使用 LZF MVStore.Builder(); builder.encryptionKey("my_h2".toCharArray()); /** * 使用 LZF

    75450编辑于 2023-03-31
  • 来自专栏JAVA乐园

    如何发现 Redis 内存占用大 key

    ://github.com/sripathikrishnan/redis-rdb-tools cd redis-rdb-tools python setup.py install 安装 python-lzf ,加快解析速度 pip install python-lzf 推荐 PyPI 安装方式 pip install rdbtools python-lzf 0x02:redis-cli --bigkeys

    3.2K10发布于 2021-09-10
  • 来自专栏闲余说

    redis 源码源文件说明

    工具功能 siphash.c Redis 4.0 & 5.0, 采用的是 SipHash 哈希算法 工具功能 pqsort.c, pqsort.h 快速排序(QuickSort)算法的实现 工具功能 lzf_c.c , lzf_d.c, lzf.h, lzfP.h Redis 对字符串和 RDB 文件进行压缩时使用的 LZF 压缩算法的实现。

    70920编辑于 2022-08-10
  • 来自专栏Nicky's blog

    Redis系列之底层数据结构QuickList

    // ziplist元素数量 /* count of items in ziplist */ unsigned int encoding : 2; // 是否使用压缩,1:没有压缩,2:lzf 压缩 /* RAW==1 or LZF==2 */ unsigned int container : 2; // 预留容器字段 /* NONE==1 or ZIPLIST==2 */ 为了支持quicklist更快的push/pop操作,quicklist首尾两个ziplist是不压缩的,即节点的encoding配置为1,encoding参数表示是否使用压缩,1:没有压缩,2:lzf

    44210编辑于 2024-12-23
  • 来自专栏开发 & 算法杂谈

    Redis源码阅读之rdb.c

    整数分别有1,2,4字节表示 image.png 3、如何保存字符串 1、如果服务器打开了RDB文件压缩功能,那么在保存RDB文件的时候就会使用 压缩格式保存,压缩格式如下: REDIS_RDB_ENC_LZF |compressed_len | original_len | compressed_string 其中REDIS_RDB_ENC_LZF会和11放在第一个字节中 2、如果服务器没有开启RDB文件压缩功能

    76040发布于 2018-08-02
领券