1"use strict";(self.webpackChunkengula_website=self.webpackChunkengula_website||[]).push([["570"],{8268:function(e,n,s){s.r(n),s.d(n,{default:()=>a});var r=s(2676),l=s(453);let i=s.p+"static/image/result_report.0ce522fe.png",d=s.p+"static/image/running_interface.c64fe96d.png",t=s.p+"static/image/output_log_example.9e0a3c15.png";function h(e){let n=Object.assign({h1:"h1",a:"a",h2:"h2",ul:"ul",li:"li",strong:"strong",code:"code",h3:"h3",p:"p",img:"img",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,l.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.h1,{id:"engula-kernelcompatå
æ ¸å
¼å®¹æ§æµè¯å·¥å
·",children:["Engula KernelCompatï¼å
æ ¸å
¼å®¹æ§æµè¯å·¥å
·ï¼",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#engula-kernelcompatå
æ ¸å
¼å®¹æ§æµè¯å·¥å
·",children:"#"})]}),"\n",(0,r.jsxs)(n.h2,{id:"1-声æä¸ç»è®º",children:["1. 声æä¸ç»è®º",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#1-声æä¸ç»è®º",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ææ¯è·¯çº¿"}),"ï¼Engula å¨ Redis å
æ ¸å
å®ç°äºå
æ ¸çº§åå¨å¼ææ¿æ¢ï¼æ²¿ç¨ Redis çåè®®ãå½ä»¤å¤çä¸å®¢æ·ç«¯çæã"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"å
¼å®¹æ§ç»è®º"}),"ï¼Engula 2.1 以 Redis 7.2 è¡ä¸ºä¸ºåºçº¿ååè®®ä¸è¯ä¹éªè¯ï¼å
¬å¼éè¿çã失败åå åå½±åé¢ä»¥ proof-live 为åï¼åºç¨è¿ç§»é常æ éä¿®æ¹ä»£ç ææ´æ¢å®¢æ·ç«¯ã"]}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"2-è®¾è®¡ç®æ åå¯¹æ¯æ¹æ³",children:["2. è®¾è®¡ç®æ åå¯¹æ¯æ¹æ³",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#2-è®¾è®¡ç®æ åå¯¹æ¯æ¹æ³",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ç®æ "}),"ï¼éªè¯ Engula 2.1 对 Redis 7.2 åè®®åæ°æ®ç»æçå
¼å®¹ç¨åº¦ã"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"ææ "}),"ï¼åè®®å
¼å®¹æ§ãæ°æ®ç»æå
¼å®¹æ§ã"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"å¯¹æ¯æ¹æ³è¯´æ"}),"ï¼","\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["以 Redis 7.2 çåç ",(0,r.jsx)(n.code,{children:"make test"})," ç¨ä¾ä¸ºåºåï¼éç¨ Redis åçæµè¯æ¡æ¶ï¼ç¡®ä¿ç¨ä¾ä¸è´ä¸å¯å¤ç°ã"]}),"\n",(0,r.jsx)(n.li,{children:"éé¡¹å¯¹æ¯æµè¯ç»æï¼ç»è®¡éè¿çå失败åå ã"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"21-æµè¯ææ ",children:["2.1 æµè¯ææ ",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#21-æµè¯ææ ",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"æ°æ®ç»æå
¼å®¹æ§"}),"ï¼StringãHashãListãSetãSorted SetãStreamãBitmapãHyperLogLogãGeo æ°æ®ç»æçæä½ä¸è´æ§ã"]}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"22-éªè¯åç",children:["2.2 éªè¯åç",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#22-éªè¯åç",children:"#"})]}),"\n",(0,r.jsxs)(n.p,{children:["Redis 使ç¨åºäº Tcl çæµè¯æ¡æ¶ï¼",(0,r.jsx)(n.code,{children:"test.tcl"})," + å¤ä¸ª ",(0,r.jsx)(n.code,{children:"unit/*.tcl"})," ç¨ä¾ï¼é©±å¨ ",(0,r.jsx)(n.code,{children:"redis-server"})," ä¸ ",(0,r.jsx)(n.code,{children:"redis-cli"}),"ï¼ä»¥ RESP åè®®æ§è¡å½ä»¤å¹¶æ ¡éªææè¾åºãæµè¯éè¿ç´æ¥è°ç¨ ",(0,r.jsx)(n.code,{children:"runtest.tcl"})," è¿è¡ï¼æ¯æææ¨¡å䏿 ç¾çéãå¹¶è¡æ§è¡ãæ°æ®ç®å½é离çç¹æ§ï¼ç¡®ä¿ç»æå¯å¤ç°ä¸å¯¹å®ç°ç»èçä½è¦åã"]}),"\n",(0,r.jsx)(n.p,{children:"Engula å
¼å®¹æ§éªè¯æè·¯ï¼"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["éå䏿°æ®ç»æï¼StringãHashãListãSetãSorted SetãStreamãBitmapãHyperLogLogãGeoï¼ç¸å
³ç Tcl ç¨ä¾éï¼ä½¿ç¨åçæµè¯é©±å¨èæ¬ ",(0,r.jsx)(n.code,{children:"runtest.tcl"})," å¨å®¢æ·ç«¯ä¾§åèµ·æµè¯ï¼ç¶åæ¯è¾æµè¯ç¨ä¾çææè¾åºä¸ Engula çå®é
ååºæ¯å¦ä¸è´ã"]}),"\n",(0,r.jsx)(n.li,{children:"对ä¾èµ Redis å
é¨å
åå¸å±æè°è¯æ¥å£ï¼debug/å
é¨è¡¨å¾ï¼çæµè¯è¿è¡åé¤ï¼ä¸æ¹åé¢åç¨æ·åºç¨çå
¼å®¹æ§ã"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Tcl æä»¶å表"}),"ï¼"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"unit/scan"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/string"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/incr"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/list"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/list-2"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/list-3"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/set"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/zset"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/hash"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/stream"}),"\n",(0,r.jsx)(n.li,{children:"unit/type/stream-cgroups"}),"\n",(0,r.jsx)(n.li,{children:"unit/sort"}),"\n",(0,r.jsx)(n.li,{children:"unit/expire"}),"\n",(0,r.jsx)(n.li,{children:"unit/pubsub"}),"\n",(0,r.jsx)(n.li,{children:"unit/pubsubshard"}),"\n",(0,r.jsx)(n.li,{children:"unit/bitops"}),"\n",(0,r.jsx)(n.li,{children:"unit/bitfield"}),"\n",(0,r.jsx)(n.li,{children:"unit/geo"}),"\n",(0,r.jsx)(n.li,{children:"unit/hyperloglog"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["æ´ç»ç²åº¦çæµè¯é¡¹å¯åè§ Engula KernelCompat çæç ",(0,r.jsx)(n.code,{children:"output.log"}
1),"ï¼å
嫿¯æ¡ç¨ä¾çæ§è¡è¯¦æ
ï¼ï¼"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)("img",{src:t,alt:"output.log 示ä¾"})}),"\n",(0,r.jsxs)(n.h2,{id:"å¿«éä½¿ç¨æè¦",children:["å¿«éä½¿ç¨æè¦",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#å¿«éä½¿ç¨æè¦",children:"#"})]}),"\n",(0,r.jsxs)(n.table,{children:["\n",(0,r.jsxs)(n.thead,{children:["\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.th,{children:"项"}),"\n",(0,r.jsx)(n.th,{children:"å
容"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.tbody,{children:["\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:"å·¥å
·ç®ä»"}),"\n",(0,r.jsx)(n.td,{children:"åºäº Redis 宿¹æµè¯æ¡æ¶éªè¯ Engula ç Redis 7.2 å½ä»¤ãåè®®åæ°æ®ç»æå
¼å®¹æ§ã"}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:"åç½®æ¡ä»¶"}),"\n",(0,r.jsxs)(n.td,{children:["æ¬æºå¯è¿è¡ Dockerï¼åå¤ ",(0,r.jsx)(n.code,{children:"output.log"})," å ",(0,r.jsx)(n.code,{children:"summary.html"})," è¾åºæä»¶ã"]}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:"å¿«éå¼å§"}),"\n",(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"docker run --user $(id -u):$(id -g) -it --rm -v $(pwd)/output.log:/montplex/output.log -v $(pwd)/summary.html:/montplex/summary.html registry.ap-southeast-1.aliyuncs.com/montplex/engula-kernel-compat:latest"})}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:"è¾åºè§£è¯»"}),"\n",(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"summary.html"})," çæ´ä½éè¿çååç±»ç»è®¡ï¼",(0,r.jsx)(n.code,{children:"output.log"})," çæ¯æ¡å¤±è´¥ç¨ä¾ç»èã"]}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:"宿´ç¤ºä¾"}),"\n",(0,r.jsx)(n.td,{children:"è§ä¸æ¹âè¿è¡ Engula KernelCompatâã"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"å½ä»¤è¡åæ°",children:["å½ä»¤è¡åæ°",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#å½ä»¤è¡åæ°",children:"#"})]}),"\n",(0,r.jsxs)(n.table,{children:["\n",(0,r.jsxs)(n.thead,{children:["\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.th,{children:"åæ°"}),"\n",(0,r.jsx)(n.th,{children:"ä½ç¨"}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.tbody,{children:["\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"--user $(id -u):$(id -g)"})}),"\n",(0,r.jsx)(n.td,{children:"让æ¥åæä»¶å½å±å½åç¨æ·ã"}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"-v $(pwd)/output.log:/montplex/output.log"})}),"\n",(0,r.jsx)(n.td,{children:"æè½½è¯¦ç»æ¥å¿è¾åºæä»¶ã"}),"\n"]}),"\n",(0,r.jsxs)(n.tr,{children:["\n",(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"-v $(pwd)/summary.html:/montplex/summary.html"})}),"\n",(0,r.jsx)(n.td,{children:"æè½½ HTML æ±æ»æ¥åè¾åºæä»¶ã"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"3-å¿«éå
æ ¸å
¼å®¹æ§æµè¯engula-kernelcompat",children:["3. å¿«éå
æ ¸å
¼å®¹æ§æµè¯ï¼Engula KernelCompatï¼",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#3-å¿«éå
æ ¸å
¼å®¹æ§æµè¯engula-kernelcompat",children:"#"})]}),"\n",(0,r.jsxs)(n.h3,{id:"31-ä¸è½½æµè¯å·¥å
·",children:["3.1 ä¸è½½æµè¯å·¥å
·",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#31-ä¸è½½æµè¯å·¥å
·",children:"#"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Docker éå"}),"ï¼",(0,r.jsx)(n.code,{children:"registry.ap-southeast-1.aliyuncs.com/montplex/engula-kernel-compat:latest"})]}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"32-ç¯å¢è¦æ±",children:["3.2 ç¯å¢è¦æ±",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#32-ç¯å¢è¦æ±",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:"Engula KernelCompat 以 Docker éå形弿ä¾ï¼å¯å¨å·²å®è£
Docker ç Linux æ macOS ä¸è¿è¡ãæ¨èç¯å¢å¦ä¸ï¼"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"CentOS çæ¬ ⥠7.9"}),"\n",(0,r.jsx)(n.li,{children:"Ubuntu çæ¬ ⥠18.04"}),"\n",(0,r.jsxs)(n.li,{children:["æ¨èä½¿ç¨ Docker 宿¹çæ¬ï¼",(0,r.jsx)(n.a,{href:"https://docs.docker.com/engine/install/",target:"_blank",rel:"noopener noreferrer",children:"å®è£
æå"}),"ï¼ç½ç»è®¿é®è¾æ
¢æ¶å¯æååå¤éåï¼"]}),"\n"]}),"\n",(0,r.jsxs)(n.h3,{id:"33-è¿è¡-engula-kernelcompat",children:["3.3 è¿è¡ Engula KernelCompat",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#33-è¿è¡-engula-kernelcompat",children:"#"})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker pull registry.ap-southeast-1.aliyuncs.com/montplex/engula-kernel-compat:latest\n\n# å¨ä»»ææä»¶å¤¹å
\nmkdir tmp_test && cd tmp_test\ntouch output.log\ntouch summary.html\n\ndocker run --user $(id -u):$(id -g) -it --rm \\\n -v $(pwd)/output.log:/montplex/output.log \\\n -v $(pwd)/summary.html:/montplex/summary.html \\\n registry.ap-southeast-1.aliyuncs.com/montplex/engula-kernel-compat:latest\n"})}),"\n",(0,r.jsx)(n.p,{children:"è¿è¡çé¢ç¤ºæï¼"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)("img",{src:d,alt:"è¿è¡çé¢ç¤ºæ"})}),"\n",(0,r.jsxs)(n.h3,{id:"34-æ¥çè¿è¡ç»æ",children:["3.4 æ¥çè¿è¡ç»æ",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#34-æ¥çè¿è¡ç»æ",children:"#"})]}),"\n",(0,r.jsxs)(n.p,{children:["è¿è¡ç»æåä¼çæ ",(0,r.jsx)(n.code,{children:"summary.html"})," æä»¶ï¼å¯éè¿æµè§å¨æå¼æ¥çç»æã"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)("img",{src:i,alt:"è¿è¡ç»ææ¥å"})}),"\n",(0,r.jsx)(n.p,{children:"æ¥åå
å«ï¼"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"å
¼å®¹æ§éè¿ç»è®¡ä¿¡æ¯"}),"\n",(0,r.jsx)(n.li,{children:"éè¿å½ä»¤ç大类ä¸å°ç±»æç»"}),"\n"]}),"\n",(0,r.jsxs)(n.h2,{id:"4-faq",children:["4. FAQ",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#4-faq",children:"#"})]}),"\n",(0,r.jsxs)(n.h3,{id:"æ¯å¦æ¯æ°æ®ç»æçå
¨é¨-caseæ¯å¦æå å",children:["æ¯å¦æ¯æ°æ®ç»æçå
¨é¨ caseï¼æ¯å¦æå åï¼",(0,r.jsx)(n.a,{className:"header-anchor","aria-hidden":"true",href:"#æ¯å¦æ¯æ°æ®ç»æçå
¨é¨-caseæ¯å¦æå å",children:"#"})]}),"\n",(0,r.jsx)(n.p,{children:"æå åãé¨å debug ç±»åçæµè¯ case ä¾èµ Redis åæçå
鍿°æ®ç»æè¿è¡æµè¯ãç±äº Engula çå卿 ¼å¼ä¸ Redis ä¸ä¸æ ·ï¼è¿äº case å·²ç»è½¬å为 Engula å
ååå¨çæ ¼å¼ãæ¤ç±» case é常ä¸ä¼å½±å Redis ç使ç¨ï¼ä¸å½±å Redis çå
¼å®¹æ§ã"})]})}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}=Object.assign({},(0,l.ah)(),e.components);return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}let a=c;c.__RSPRESS_PAGE_META={},c.__RSPRESS_PAGE_META["zh%2Fdocs%2Ftools%2Fkernelcompat.md"]={toc:[{text:"1. 声æä¸ç»è®º",id:"1-声æä¸ç»è®º",depth:2},{text:"2. è®¾è®¡ç®æ åå¯¹æ¯æ¹æ³",id:"2-è®¾è®¡ç®æ åå¯¹æ¯æ¹æ³",depth:2},{text:"2.1 æµè¯ææ ",id:"21-æµè¯ææ ",depth:3},{text:"2.2 éªè¯åç",id:"22-éªè¯åç",depth:3},{text:"å¿«éä½¿ç¨æè¦",id:"å¿«éä½¿ç¨æè¦",depth:2},{text:"å½ä»¤è¡åæ°",id:"å½ä»¤è¡åæ°",depth:3},{text:"3. å¿«éå
æ ¸å
¼å®¹æ§æµè¯ï¼Engula KernelCompatï¼",id:"3-å¿«éå
æ ¸å
¼å®¹æ§æµè¯engula-kernelcompat",depth:2},{text:"3.1 ä¸è½½æµè¯å·¥å
·",id:"31-ä¸è½½æµè¯å·¥å
·",depth:3},{text:"3.2 ç¯å¢è¦æ±",id:"32-ç¯å¢è¦æ±",depth:3},{text:"3.3 è¿è¡ Engula KernelCompat",id:"33-è¿è¡-engula-kernelcompat",depth:3},{text:"3.4 æ¥çè¿è¡ç»æ",id:"34-æ¥çè¿è¡ç»æ",depth:3}
1,{text:"4. FAQ",id:"4-faq",depth:2},{text:"æ¯å¦æ¯æ°æ®ç»æçå
¨é¨ caseï¼æ¯å¦æå åï¼",id:"æ¯å¦æ¯æ°æ®ç»æçå
¨é¨-caseæ¯å¦æå å",depth:3}],title:"Engula KernelCompatï¼å
æ ¸å
¼å®¹æ§æµè¯å·¥å
·ï¼",headingTitle:"Engula KernelCompatï¼å
æ ¸å
¼å®¹æ§æµè¯å·¥å
·ï¼",frontmatter:{}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.