<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[小涂博客]]></title> 
<atom:link href="https://blog.mcecy.com/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[我的学习笔记和技术分享]]></description>
<link>https://blog.mcecy.com/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
    <title>mTab书签一些基础的操作教程</title>
    <link>https://blog.mcecy.com/web/55.html</link>
    <description><![CDATA[<h3>后台管理员登录</h3>
<p>在桌面端使用鼠标右键，打开菜单，点击设置（或者直接在右上角点击头像图标），然后点击登录，使用管理员账号登录后，在此进入个人中心就可以看到<strong>后台管理</strong>的按钮了，然后点击进入就可以进入后台。</p>
<h3>设置程序的默认桌面</h3>
<p>程序安装后会有默认的桌面，可能不符合您的需求，所以可以将桌面默认内容删除，添加你的想要的桌面，然后点击 <strong>替换新布局为当前程序默认桌面</strong> 按钮设置为所有新用户的默认桌面,这样新用户进来,或者用户点击重置所有按钮后，用户桌面就是你设置的默认的内容！！！</p>
<h3>后台标签商城解释</h3>
<p>后台标签商城添加的标签会在前端的用户端的标签商城展示，用户可以快捷添加图标或者在自定义标签的时候匹配logo，如果要设置一些给用户看的默认的标签，请看 <strong>设置程序的默认桌面这一项说明</strong></p>
<h3>卡片组件拖拽</h3>
<p>鼠标移动至卡片组件右上角蓝色圆点后，可以点击鼠标按下后拖拽即可排序</p>]]></description>
    <pubDate>Wed, 17 Apr 2024 20:34:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/web/55.html</guid>
</item>
<item>
    <title>分享一个简化服务器管理的在线ssh工具利器-WebTerm</title>
    <link>https://blog.mcecy.com/serverMachine/54.html</link>
    <description><![CDATA[<p>在当今数字化时代，服务器管理对于许多企业和个人用户来说是至关重要的任务。然而，传统的SSH连接和服务器管理工具往往需要繁琐的安装和配置过程，这对于不熟悉技术的用户来说可能是一个挑战。但是现在，有了一款名为WebTerm的工具，您可以摆脱这些烦恼，轻松地在线连接和管理服务器。</p>
<p>WebTerm是一款无需安装即可在线连接和管理服务器的SSH终端工具。它的设计初衷是简化服务器管理流程，使用户能够快速、轻松地访问和操作他们的服务器，而无需担心复杂的安装和配置步骤。无论您是初学者还是经验丰富的系统管理员，WebTerm都提供了简单而强大的工具，让您可以轻松地管理服务器。<br />
<img src="https://blog.mcecy.com/content/uploadfile/202403/a0d21710569665.png" alt="" /></p>
<p>这款工具支持跨平台设备，无论您是使用Windows、Mac还是Linux操作系统，都可以通过Web浏览器轻松访问和管理服务器。这意味着您可以在任何地方、任何设备上管理您的服务器，只要有网络连接，就可以立即开始工作。</p>
<p>通过WebTerm，您可以执行各种操作，包括文件传输、执行命令、编辑文件等等。它提供了一个直观的用户界面，使您能够轻松地浏览和管理服务器上的文件和目录。此外，WebTerm还具有强大的安全功能，确保您的连接和数据始终受到保护。</p>
<p>一个特别令人印象深刻的功能是WebTerm的即时访问性。与传统的SSH工具不同，您不需要下载或安装任何软件，只需通过浏览器访问官方网站（ssh.mtab.cc），输入您的凭据，即可立即开始使用。这种即用即连的便利性极大地简化了服务器管理流程，使您能够专注于任务本身，而不是繁琐的设置和安装步骤。</p>
<p>总的来说，WebTerm是一款功能强大、易于使用的服务器管理工具，为用户提供了简单、快速、安全的方式来连接和管理他们的服务器。无论您是一名开发人员、系统管理员还是企业用户，都会发现WebTerm是一个非常有用的工具，可以帮助您更高效地管理您的服务器。</p>
<p>如果您还没有尝试过WebTerm，现在就去官方网站（<a href="https://ssh.mtab.cc" title="ssh.mtab.cc">ssh.mtab.cc</a>）试试吧！让服务器管理变得轻松愉快起来！</p>]]></description>
    <pubDate>Sat, 16 Mar 2024 11:54:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/serverMachine/54.html</guid>
</item>
<item>
    <title>JS字符串模板替换一般用于国际化中含有动态书内容使用</title>
    <link>https://blog.mcecy.com/web/53.html</link>
    <description><![CDATA[<p>有时候国际化或者一段动态的支付模板或者短信模板配置中需要一些动态的参数，可以用下面的方法来动态渲染部分需要变化的字符串的内容。</p>
<pre><code class="language-javascript">const myRender = (template, person) =&gt; {
  let reg = /{{(.*?)}}/g

  let res = template.replace(reg, (item, key) =&gt; {
    return person[key]
  })

  return res
}

let template = '我是{{name}}，年龄{{age}}，性别{{sex}}'
let person = {
  name: '布兰',
  age: 12,
}

let res = myRender(template, person)
console.log(res) // 我是布兰，年龄12，性别undefined
</code></pre>]]></description>
    <pubDate>Wed, 13 Dec 2023 21:07:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/web/53.html</guid>
</item>
<item>
    <title>蓝易云SCDN — 强大的安全防护CDN，为你的网站提供全方位防护！</title>
    <link>https://blog.mcecy.com/serverMachine/51.html</link>
    <description><![CDATA[<h2>简介</h2>
<p>在数字时代，网站速度和安全性是在线业务成功的关键。而蓝易云SCDN（内容分发网络）不仅提供卓越的网站加速服务，更以自主研发的无感人机识别算法颠覆传统CC防护，从根源上解决CC攻击的种种困扰。</p>
<h2>蓝易云CDN官网：<a href="https://www.tsycdn.com">www.tsycdn.com</a></h2>
<h2>功能展示</h2>
<h3>安全盾人机识别算法，多重优势一网打尽</h3>
<ul>
<li><strong>无感验证：</strong> 用户体验至上，我们的无感验证确保用户顺畅访问，无需繁琐的验证流程。</li>
<li><strong>5秒盾：</strong> 针对攻击，我们的5秒盾迅速响应，确保迅速阻断恶意流量。</li>
<li><strong>点击验证：</strong> 弹性验证方式，智能判断风险，提高验证的准确性。</li>
<li><strong>验证码识别：</strong> 强大的验证码识别技术，精准判别并拦截恶意攻击。</li>
<li><strong>自动提升防护等级：</strong>自动提升防护等级，让您放手一搏。</li>
<li><strong>自定义规则</strong>：自带的规则满足不了你，自定义规则满足你的所有需求。<img src="https://www.8kiz.cn/usr/uploads/2023/11/3793174058.png" alt="" /></li>
</ul>
<h3>区域性屏蔽</h3>
<p>定制区域性屏蔽，助您精准把控访问者，确保网络环境更为安全可靠。</p>
<p><strong>1. 精准定制：</strong> 根据您的具体需求，我们提供灵活的定制化选项，让您能够精准选择屏蔽的区域，确保只有合法授权的用户可以访问您的网络资源。</p>
<p><strong>2. 强大屏蔽引擎：</strong> 我们拥有先进的屏蔽引擎，能够识别并阻挡指定区域的访问，为您的网络提供全面防护。</p>
<p><strong>3. 提升网络安全性：</strong> 区域性屏蔽有效地减少了潜在的网络威胁，保护您的业务免受未经授权的访问和攻击。</p>
<p><img src="https://www.8kiz.cn/usr/uploads/2023/11/1837915195.png" alt="" /></p>
<h3>蓝易云SCDN支持Websocket协议加速</h3>
<p><img src="https://www.8kiz.cn/usr/uploads/2023/11/2085960473.png" alt="" /></p>
<h3>自定义防护测量，恶意流量灵活阻断or加白</h3>
<ol>
<li>适用多角度自定义设定安全防护策略</li>
<li>IP地址访问控制适用对指定的IP地址或网段，还有恶意的IP地址的封禁或者加白</li>
<li>URL访问控制</li>
<li>适用对指定的URL地址的禁止访问或加白</li>
<li>恶意的网络爬虫安全防护</li>
<li>适用对指定的目录开启人机鉴别或滑块验证，应用于接口防刷，页面 防爬</li>
<li>后台管理保护</li>
<li>可设定对某些特定URL地址(如管理员登录后台)指定的只允许某些IP地址访问</li>
<li>防盗链安全防护</li>
<li>避免网站资源被其他网站恶意的链接、使用</li>
<li>不存在链接的恶意的访问</li>
<li>拦截黑客针对不存在的URL地址发起的大量恶意的访问</li>
<li>基于地理区域的封禁</li>
<li>适用针对指定的地区的IP地址访问封禁</li>
<li>阻挡诸如CC攻击、SQL注入、跨站脚本、漏洞攻击等常见攻击，避免网站资产数据泄露，保障网站的安全与可用性。</li>
</ol>
<h3>蓝易云CDN自定义缓存加速<img src="https://www.8kiz.cn/usr/uploads/2023/11/2888872479.png" alt="" /></h3>
<h3>以及超详细的统计报表，网站访问报表，网站流量报表，CC攻击报表，以及详细的国内及国际+运营商判断报表！<img src="https://www.8kiz.cn/usr/uploads/2023/11/3430315421.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/342317986.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/2059691444.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/735062762.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/742808843.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/1569419412.png" alt="" /></h3>
<h2>评测</h2>
<h3>国内Ping测试<img src="https://www.8kiz.cn/usr/uploads/2023/11/2685118307.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/4239411760.png" alt="" /></h3>
<h3>网页加载测试<img src="https://www.8kiz.cn/usr/uploads/2023/11/1930314153.png" alt="" /></h3>
<h3>网站测速<img src="https://www.8kiz.cn/usr/uploads/2023/11/300917834.png" alt="" /><img src="https://www.8kiz.cn/usr/uploads/2023/11/3046682829.png" alt="" /></h3>
<h2>价格</h2>
<p><strong>说明：支持测试，从本站去购买任意季付套餐（体验套餐除外），联系客服，给予八折优惠.</strong></p>
<h2>结尾</h2>
<p>在竞争激烈的在线业务环境中，选择蓝易云SCDN是你最明智的决策。为你的网站提供前所未有的速度和安全性，助力你在市场中脱颖而出。</p>]]></description>
    <pubDate>Sun, 19 Nov 2023 18:23:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/serverMachine/51.html</guid>
</item>
<item>
    <title>VsCode的EasyLess扩展的setting.json配置</title>
    <link>https://blog.mcecy.com/web/50.html</link>
    <description><![CDATA[<p>想要修改vscode总easyless的插件的设置，需要再vscode的设置中找到setting.json,然后再最外层粘贴一下代码。</p>
<pre><code class="language-json"> "less.compile": {
        "compress": true, // 是否删除多余空白字符
        "sourceMap": false, // 是否创建文件目录树，true的话会自动生成一个 .css.map 文件
        "out": "../css/", // 输出文件目录 这里为css文件夹
        "outExt": ".css", // 输出文件的后缀,默认为.css 如果是微信小程序后缀为.wxss
    },</code></pre>
<h2>最终结果如下图</h2>
<p><img src="https://blog.mcecy.com/content/uploadfile/202310/f9401698728521.png" alt="VsCode的EasyLess扩展的setting.json配置" title="VsCode的EasyLess扩展的setting.json配置" /></p>]]></description>
    <pubDate>Tue, 31 Oct 2023 12:58:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/web/50.html</guid>
</item>
<item>
    <title>js复制图片到粘贴板</title>
    <link>https://blog.mcecy.com/web/49.html</link>
    <description><![CDATA[<p>有时候我们需要将一张图片复制到粘贴板，这个时候就可以用浏览器的clipboard提供的支持了。需要注意的是，图片必须和网站是在一个域名下面，否则会跨域导致复制失败。如果需要跨域复制图片可以考虑使用后台程序代理输出一下图片。</p>
<pre><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;javascript复制图片到剪贴板&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;img id="myImage" src="./vscode.png" alt="要复制的图片"&gt;

  &lt;button id="copyButton"&gt;复制图片&lt;/button&gt;

  &lt;script&gt;
    const copyButton = document.getElementById('copyButton');
    const myImage = document.getElementById('myImage');

    copyButton.addEventListener('click', async () =&gt; {
      try {
        const blob = await fetch(myImage.src).then(response =&gt; response.blob());
        const items = [
          new ClipboardItem({ 'image/png': blob })
        ];
        await navigator.clipboard.write(items);
        alert('图片已复制到剪贴板！');
      } catch (err) {
        console.error('复制图片失败：', err);
      }
    });
  &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>以上就是js复制图片功能，就是这么简单。</p>]]></description>
    <pubDate>Tue, 31 Oct 2023 12:51:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/web/49.html</guid>
</item>
<item>
    <title>Ubuntu 22.04版本中，root用户登录、硬盘挂载等新机器操作指南</title>
    <link>https://blog.mcecy.com/serverMachine/47.html</link>
    <description><![CDATA[<p>Ubuntu 2204版本是一个强大的操作系统，它提供了许多功能，包括root用户登录和硬盘挂载。以下是一些关于如何在Ubuntu 2204版本中进行这些操作的指南。<br />
<img src="https://blog.mcecy.com/content/uploadfile/202310/13831697899416.jpeg" alt="" /><br />
首先，我们来谈谈如何以root用户身份登录。在Ubuntu中，root用户是一个特殊的用户，拥有对系统的完全控制权。然而，出于安全考虑，Ubuntu默认禁止root用户登录。如果你需要执行需要root权限的操作，你可以使用sudo命令。但是，如果你确实需要以root用户身份登录，你可以按照以下步骤操作：</p>
<p>打开终端。<br />
输入 <code>sudo -i</code>命令，然后按回车键。这将会让你以root用户身份登录。<br />
当提示输入密码时，输入你的用户密码，然后按回车键。<br />
现在，你已经以root用户身份登录了。请记住，以root用户身份运行的命令具有很大的破坏力，所以请谨慎使用。</p>
<p>接下来，我们来谈谈如何在Ubuntu 2204版本中挂载硬盘。挂载硬盘是将硬盘连接到操作系统，使其可以被操作系统访问和使用。以下是挂载硬盘的步骤：</p>
<p>打开终端。<br />
使用 <code>sudo fdisk -l</code>命令查看你的硬盘信息。这将列出你的所有硬盘和分区。<br />
找到你想要挂载的硬盘或分区，记下它的设备名，例如 <code>/dev/sdb1</code>。<br />
创建一个挂载点。挂载点是一个目录，你将在这个目录下访问你的硬盘。你可以使用 sudo mkdir /mnt/mydisk命令创建一个名为mydisk的挂载点。<br />
使用 <code>sudo mount /dev/sdb1 /mnt/mydisk</code>命令挂载硬盘。请将 <code>/dev/sdb1</code>替换为你的硬盘或分区的设备名，将 <code>/mnt/mydisk</code>替换为你的挂载点。<br />
现在，你的硬盘已经挂载到了 <code>/mnt/mydisk</code>目录，你可以在这个目录下访问你的硬盘。</p>
<p>以上就是在Ubuntu 2204版本中以root用户身份登录和挂载硬盘的操作指南。请记住，这些操作都需要一定的技术知识，如果你不确定自己在做什么，最好寻求专业的帮助。同时，操作系统是一个复杂的工具，不同的系统可能会有不同的操作方式，所以请根据你的具体情况进行操作。</p>]]></description>
    <pubDate>Wed, 25 Oct 2023 19:55:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/serverMachine/47.html</guid>
</item>
<item>
    <title>Linux中iostat命令</title>
    <link>https://blog.mcecy.com/tech/46.html</link>
    <description><![CDATA[<p><strong>iostat命令</strong>是在Linux系统上用于监视系统的I/O性能的实用工具。它提供了有关磁盘和CPU的各种统计信息，以帮助系统管理员和性能分析师了解系统的性能和瓶颈。<br />
<img src="https://blog.mcecy.com/content/uploadfile/202310/13831697899416.jpeg" alt="" /><br />
下面将详细介绍iostat命令的使用以及它提供的信息。</p>
<p><strong>基本用法</strong>:</p>
<pre><code class="language-shell">iostat [选项] [间隔时间] [次数]</code></pre>
<ul>
<li><strong>选项</strong>：可以指定各种选项来过滤输出信息。一些常用的选项包括 <code>-c</code>（只显示CPU信息），<code>-d</code>（只显示磁盘信息），<code>-t</code>（显示时间戳）等。</li>
<li><strong>间隔时间</strong>：指定每次输出的时间间隔（以秒为单位）。如果不指定，iostat将连续输出。</li>
<li><strong>次数</strong>：指定输出的次数。如果不指定，iostat将无限循环输出。</li>
</ul>
<p><strong>示例用法</strong>:</p>
<pre><code class="language-shell">iostat        # 默认情况下每秒输出一次
iostat -c 2    # 每2秒输出一次CPU信息
iostat -d 5 3  # 每5秒输出磁盘信息，共输出3次</code></pre>
<p><strong>输出信息</strong>:<br />
iostat的输出包括以下几个关键部分：</p>
<ol>
<li>
<p><strong>CPU信息</strong>：</p>
<ul>
<li><code>%user</code>：用户态CPU占用百分比。</li>
<li><code>%nice</code>：<code>nice</code>优先级较高的进程的CPU占用百分比。</li>
<li><code>%system</code>：系统态CPU占用百分比。</li>
<li><code>%iowait</code>：等待I/O的CPU占用百分比。</li>
<li><code>%steal</code>：虚拟机监控器占用的CPU时间百分比（仅在虚拟化环境中出现）。</li>
<li><code>%idle</code>：CPU空闲百分比。</li>
</ul>
</li>
<li>
<p><strong>磁盘信息</strong>：</p>
<ul>
<li><code>Device</code>：磁盘设备的名称。</li>
<li><code>tps</code>：每秒传输的块数量。</li>
<li><code>Blk_read/s</code>：每秒读取的块数。</li>
<li><code>Blk_wrtn/s</code>：每秒写入的块数。</li>
<li><code>Blk_read</code>：读取的总块数。</li>
<li><code>Blk_wrtn</code>：写入的总块数。</li>
</ul>
</li>
</ol>
<p><strong>使用示例</strong>:<br />
以下是一些使用iostat的示例场景：</p>
<ol>
<li>
<p><strong>查看CPU使用情况</strong>：</p>
<pre><code class="language-shell">iostat -c</code></pre>
<p>这将显示CPU的各种使用情况百分比，包括用户态、系统态、等待I/O等。</p>
</li>
<li>
<p><strong>监控磁盘性能</strong>：</p>
<pre><code class="language-shell">iostat -d</code></pre>
<p>这将显示磁盘设备的各种性能指标，如每秒传输块数和读写速度。</p>
</li>
<li>
<p><strong>实时监控磁盘性能</strong>：</p>
<pre><code class="language-shell">iostat -d 1</code></pre>
<p>这将连续输出磁盘性能信息，每秒刷新一次。</p>
</li>
<li>
<p><strong>查看多块磁盘的性能</strong>：</p>
<pre><code class="language-shell">iostat -d -x sda sdb</code></pre>
<p>这将仅显示<code>sda</code>和<code>sdb</code>这两块磁盘的性能信息。</p>
</li>
</ol>
<p>iostat是一个非常有用的工具，可以帮助您监视系统的性能、识别瓶颈和优化系统的I/O操作。通过仔细观察其输出，您可以更好地了解系统中发生的事情，从而更好地管理和维护Linux系统。</p>]]></description>
    <pubDate>Sat, 21 Oct 2023 22:43:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/tech/46.html</guid>
</item>
<item>
    <title>Redis基本命令和常用数据类型</title>
    <link>https://blog.mcecy.com/tech/45.html</link>
    <description><![CDATA[<p>Redis（Remote Dictionary Server）是一种开源的内存数据存储系统，通常用作缓存和数据存储。它支持多种数据类型和强大的命令集，使其成为一种非常有用的数据存储工具。<br />
<img src="https://blog.mcecy.com/content/uploadfile/202310/13831697899367.jpeg" alt="" /><br />
以下是一些Redis的基本命令和常用数据类型：</p>
<p><strong>Redis基本命令：</strong></p>
<ol>
<li><strong>SET key value</strong>: 设置指定键的值。</li>
<li><strong>GET key</strong>: 获取指定键的值。</li>
<li><strong>DEL key</strong>: 删除指定的键。</li>
<li><strong>EXISTS key</strong>: 检查键是否存在。</li>
<li><strong>TTL key</strong>: 获取键的剩余生存时间（以秒为单位）。</li>
<li><strong>EXPIRE key seconds</strong>: 设置键的生存时间（以秒为单位）。</li>
<li><strong>INCR key</strong>: 将键存储的数字值加1。</li>
<li><strong>DECR key</strong>: 将键存储的数字值减1。</li>
<li><strong>HSET key field value</strong>: 在哈希表中设置字段的值。</li>
<li><strong>HGET key field</strong>: 获取哈希表中指定字段的值。</li>
<li><strong>HDEL key field</strong>: 删除哈希表中的字段。</li>
<li><strong>RPUSH key value</strong>: 在列表右侧插入值。</li>
<li><strong>LPOP key</strong>: 从列表左侧弹出值。</li>
<li><strong>SADD key member</strong>: 将成员添加到集合中。</li>
<li><strong>SMEMBERS key</strong>: 获取集合中的所有成员。</li>
<li><strong>ZADD key score member</strong>: 向有序集合中添加成员并分配分数。</li>
<li><strong>ZRANGE key start stop</strong>: 获取有序集合中指定范围的成员。</li>
<li><strong>PUBLISH channel message</strong>: 将消息发布到指定频道。</li>
<li><strong>SUBSCRIBE channel</strong>: 订阅频道以接收发布的消息。</li>
<li><strong>UNSUBSCRIBE [channel]</strong>: 取消订阅频道。</li>
<li><strong>MULTI</strong>: 开始事务。</li>
<li><strong>EXEC</strong>: 执行事务。</li>
<li><strong>WATCH key [key...]</strong>: 监视一个或多个键，以在事务中触发条件。</li>
<li><strong>UNWATCH</strong>: 取消对所有键的监视。</li>
<li><strong>FLUSHALL</strong>: 删除所有数据库中的数据。</li>
</ol>
<p><strong>Redis常用数据类型：</strong></p>
<ol>
<li>
<p><strong>String（字符串）</strong>: 存储文本或二进制数据。用于缓存、计数器等。</p>
</li>
<li>
<p><strong>Hash（哈希表）</strong>: 用于存储字段和与字段相关联的值。适合存储对象的属性。</p>
</li>
<li>
<p><strong>List（列表）</strong>: 有序的字符串集合，支持插入和删除操作。适合用作队列或堆栈。</p>
</li>
<li>
<p><strong>Set（集合）</strong>: 无序的唯一字符串集合。用于存储不重复的成员。</p>
</li>
<li>
<p><strong>Sorted Set（有序集合）</strong>: 与集合类似，但每个成员都有一个相关联的分数，用于排序。</p>
</li>
<li>
<p><strong>Bitmaps（位图）</strong>: 使用位存储的数据结构，可以执行位级操作。适合用于跟踪用户在线状态等。</p>
</li>
<li>
<p><strong>HyperLogLog（基数估计）</strong>: 用于估算集合的基数（不重复元素的数量）。</p>
</li>
<li>
<p><strong>Geospatial（地理位置）</strong>: 存储地理位置坐标，可执行距离计算等。</p>
</li>
<li>
<p><strong>Streams（流）</strong>: 用于日志、消息传递等，具有持久性和顺序性。</p>
</li>
</ol>
<p>这些Redis命令和数据类型提供了丰富的功能，使Redis成为一个强大的数据存储和缓存工具。根据您的应用程序需求，您可以选择适当的命令和数据类型来实现不同的功能，例如数据存储、缓存、队列、发布/订阅等。 Redis的灵活性和性能使其成为许多应用程序的首选数据存储解决方案。</p>]]></description>
    <pubDate>Sat, 21 Oct 2023 22:42:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/tech/45.html</guid>
</item>
<item>
    <title>为普通用户授权访问k8s资源（tls,rbac）</title>
    <link>https://blog.mcecy.com/tech/44.html</link>
    <description><![CDATA[<p>为普通用户授权访问Kubernetes（K8s）资源，包括TLS和RBAC（Role-Based Access Control），是一项关键的安全实践，以确保只有经过授权的用户可以执行特定操作。<br />
<img src="https://blog.mcecy.com/content/uploadfile/202310/13831697899329.jpeg" alt="" /><br />
下面是一个详细的过程，以授权普通用户对K8s资源进行访问。</p>
<p><strong>1. 创建用户证书（TLS）：</strong></p>
<p>首先，您需要为普通用户创建TLS证书，以便他们可以通过安全通信连接到K8s集群。您可以使用工具如<code>openssl</code>来生成用户证书和私钥。以下是一个简化的示例：</p>
<pre><code class="language-shell"># 创建用户私钥
openssl genpkey -algorithm RSA -out user.key

# 创建证书签发请求
openssl req -new -key user.key -out user.csr -subj "/CN=your-username"

# 自签发证书（仅用于示例，请使用CA签发实际证书）
openssl x509 -req -in user.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out user.crt -days 365</code></pre>
<p>请注意，上述示例中的<code>ca.crt</code>和<code>ca.key</code>是您K8s集群中的根证书和私钥。在实际环境中，您应该使用一个正规的证书颁发机构（CA）来签发用户证书。</p>
<p><strong>2. 创建K8s用户对象：</strong></p>
<p>接下来，您需要在K8s中创建一个用户对象，这将与TLS证书关联。这可以通过创建一个<code>ServiceAccount</code>和一个<code>ClusterRoleBinding</code>来完成：</p>
<pre><code class="language-yaml"># user-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: your-username</code></pre>
<pre><code class="language-yaml"># user-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: your-username-clusterrolebinding
subjects:
  - kind: ServiceAccount
    name: your-username
    namespace: default
roleRef:
  kind: ClusterRole
  name: cluster-admin  # 为用户分配适当的角色
  apiGroup: rbac.authorization.k8s.io</code></pre>
<p>应用上述配置文件：</p>
<pre><code class="language-shell">kubectl apply -f user-serviceaccount.yaml
kubectl apply -f user-clusterrolebinding.yaml</code></pre>
<p>这将创建一个<code>ServiceAccount</code>并将其与<code>ClusterRoleBinding</code>相关联，使用户能够在默认命名空间中执行适当的操作。确保根据需要调整<code>roleRef</code>字段，以授予用户适当的权限。</p>
<p><strong>3. 生成用户kubeconfig文件：</strong></p>
<p>用户需要一个kubeconfig文件，以便连接到K8s集群。您可以使用以下命令为用户生成kubeconfig文件：</p>
<pre><code class="language-shell">kubectl config set-credentials your-username \
  --client-certificate=user.crt \
  --client-key=user.key \
  --embed-certs=true
kubectl config set-context your-username-context \
  --cluster=your-cluster-name \
  --user=your-username
kubectl config use-context your-username-context</code></pre>
<p>替换<code>your-username</code>和<code>your-cluster-name</code>为实际的用户名和集群名称。</p>
<p><strong>4. 分发kubeconfig文件：</strong></p>
<p>将生成的kubeconfig文件分发给用户。用户可以通过设置<code>KUBECONFIG</code>环境变量来使用该文件：</p>
<pre><code class="language-shell">export KUBECONFIG=/path/to/your-username-kubeconfig.yaml</code></pre>
<p>这样，用户就可以使用<code>kubectl</code>工具连接到K8s集群并执行其授权的操作。</p>
<p>通过以上步骤，您已经为普通用户创建了TLS证书，设置了RBAC规则，并生成了kubeconfig文件，以允许他们访问K8s资源。请务必小心保护TLS证书和私钥，以确保安全性。根据需要，您可以调整RBAC规则，以授予用户所需的权限，确保他们只能执行授权的操作。</p>]]></description>
    <pubDate>Sat, 21 Oct 2023 22:41:00 +0800</pubDate>
    <dc:creator>涂山</dc:creator>
    <guid>https://blog.mcecy.com/tech/44.html</guid>
</item></channel>
</rss>