• Redis 笔记 01:入门篇


    Redis 笔记 01:入门篇

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    本文信息本文信息防爬虫替换信息
    作者网站LYMTICShttps://lymtics.top
    作者LYMTICS(樵仙)https://lymtics.top
    联系方式contact@mails.rencontact@mails.ren
    原文标题Redis 笔记 01:入门篇Redis 笔记 01:入门篇
    原文地址https://www.cnblogs.com/lymtics/p/16439261.htmlhttps://www.cnblogs.com/lymtics/p/16439261.html
    • 如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持
    • 原文会不断地更新和完善排版和样式会更加适合阅读,并且有相关配图
    • 如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息
    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

    这是本人根据黑马视频学习 Redis 的相关笔记,系列文章导航:《Redis设计与实现》笔记与汇总

    安装与运行

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    本文信息本文信息防爬虫替换信息
    作者网站LYMTICShttps://lymtics.top
    作者LYMTICS(樵仙)https://lymtics.top
    联系方式contact@mails.rencontact@mails.ren
    原文标题Redis 笔记 01:入门篇Redis 笔记 01:入门篇
    原文地址https://www.cnblogs.com/lymtics/p/16439261.htmlhttps://www.cnblogs.com/lymtics/p/16439261.html
    • 如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持
    • 原文会不断地更新和完善排版和样式会更加适合阅读,并且有相关配图
    • 如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息
    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

    安装

    安装依赖

    yum install -y gcc tcl
    

    下载到 /usr/local/src

    wget https://download.redis.io/releases/redis-6.2.6.tar.gz
    

    解压

    tar -xzvf redis-6.2.6.tar.gz
    

    安装

    cd redis-6.2.6
    make && make install
    

    默认安装路径: /usr/local/bin

    运行

    redis-server
    

    修改配置文件: /usr/local/src/redis.conf

    # bind 127.0.0.1 -::1
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    bind 0.0.0.0
    
    # daemonize no
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    daemonize yes
    
    requirepass abc123
    
    # 其他可选项:
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    
    # 配置端口
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    port 6379
    # 工作目录
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    dir .
    # 数据库数量 默认16
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    database 16
    # 最大内存
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    maxmemory 512mb
    # 日志文件,默认为空
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    logfile "redis.log"
    
    折叠

    再次运行(基于配置文件):

    redis-server redis.conf
    

    自动启动

    vim /etc/systemd/system/redis.service
    
    [Unit]
    Description=redis-server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    重新加载服务:

    systemctl daemon-reload
    

    剩下的就可以自行发挥了 enablestartstop

    客户端连接

    命令行

    
    [root@localhost redis-6.2.6]# redis-cli
    127.0.0.1:6379> AUTH
    (error) ERR wrong number of arguments for 'auth' command
    127.0.0.1:6379> AUTH abc123
    OK
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> set name jack
    OK
    127.0.0.1:6379> set age 12
    OK
    127.0.0.1:6379> get name
    "jack"
    127.0.0.1:6379> get age
    "12"
    127.0.0.1:6379> SELECT 1
    

    图形化界面

    先把 CentOS 防火墙关闭掉:

    如果连不上,参考【windows连不上虚拟机redis服务

    systemctl stop firewalld
    systemctl disable firewalld
    

    几款软件:

    数据结构

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    本文信息本文信息防爬虫替换信息
    作者网站LYMTICShttps://lymtics.top
    作者LYMTICS(樵仙)https://lymtics.top
    联系方式contact@mails.rencontact@mails.ren
    原文标题Redis 笔记 01:入门篇Redis 笔记 01:入门篇
    原文地址https://www.cnblogs.com/lymtics/p/16439261.htmlhttps://www.cnblogs.com/lymtics/p/16439261.html
    • 如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持
    • 原文会不断地更新和完善排版和样式会更加适合阅读,并且有相关配图
    • 如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息
    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

    可以在 Command reference – Redis 查看各种命令的介绍

    或通过如下方式查询某一个类型的指令:

    help @XXX
    # 如:
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    help @generic
    

    或如下方式查看某一具体的指令:

    help XXX
    # 如:
    
    
    <div class=anti_spider><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div class=table-wrapper><table><thead><tr><th>本文信息<th>本文信息<th>防爬虫替换信息<tbody><tr><td><strong>作者网站</strong><td><a href=https://lymtics.top target=_blank>LYMTICS</a><td><code>https://lymtics.top</code><tr><td><strong>作者</strong><td>LYMTICS(樵仙)<td><code>https://lymtics.top</code><tr><td><strong>联系方式</strong><td>contact@mails.ren<td><code>contact@mails.ren</code><tr><td><strong>原文标题</strong><td>Redis 笔记 01:入门篇<td><code>Redis 笔记 01:入门篇</code><tr><td><strong>原文地址</strong><td><a href=https://www.cnblogs.com/lymtics/p/16439261.html target=_blank>https://www.cnblogs.com/lymtics/p/16439261.html</a><td><code>https://www.cnblogs.com/lymtics/p/16439261.html</code></table><ul><li>如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持</li><li>原文会不断地<strong>更新和完善</strong>,<strong>排版和样式会更加适合阅读</strong>,并且<strong>有相关配图</strong></li><li>如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息</li></ul><div><mark>★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★</mark></div><div><img src=https://image.lymtics.top/common/logo/default.png loading=lazy></div></div></div>
    
    help SET
    

    通用命令

    通用指令是部分数据类型的,都可以使用的指令,常见的有:

    • KEYS:查看符合模板的所有 key【不建议在生产环境使用】
    • DEL:删除一个指定的 key
    • EXISTS:判断 key 是否存在
    • EXPIRE:给一个 key 设置有效期,有效期到期时该 key 会被自动删除
    • TTL:查看一个 KEY 的剩余有效期

    String

    介绍:

    String 类型,也就是字符串类型,是 Redis 中最简单的存储类型。其 value 是字符串,不过根据字符串的格式不同,又可以分为 3 类:

    • string:普通字符串
    • int:整数类型,可以做自增、自减操作
    • float:浮点类型,可以做自增、自减操作

    不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过512m。

    命令:

    • SET : 添加或者修改已经存在的一个 String 类型的键值对
    • GET : 根据 key 获取 String 类型的 value
    • MSET : 批量添加多个 String 类型的键值对
    • MGET : 根据多个 key 获取多个 String 类型的 value
    • INCR : 让一个整型的 key 自增 1
    • INCRBY : 让一个整型的 key 自增并指定步长,例如:incrby num 2 让 num 值自增 2
    • INCRBYFLOAT : 让一个浮点类型的数字自增并指定步长
    • SETNX : 添加一个 String 类型的键值对,前提是这个 key 不存在,否则不执行
    • SETEX : 添加一个 String 类型的键值对,并且指定有效期

    多层级:

    Redis 的 key 允许有多个单词形成层级结构,多个单词之间用 : 隔开,例如:

    SET user:boy:1:name Jack
    SET user:boy:1:age 18
    

    如果 value 是一个 Java 对象,例如一个 User 对象,则可以将对象序列化为 JSON 字符串后存储:

    KEY VALUE
    xx:user:1 {"id":1, "name": "Jack", "age": 21}
    xx:product:2 {"id":1, "name": "小米11", "price": 4999}

    Hash

    介绍:

    上述将对象序列化为 String 的方式在修改时很不方便,可以用 Hash 将对象的每个字段独立存储,可以针对单个字段做 CURD:

    常用命令:

    • HSET key field value : 添加或者修改 hash 类型 key 的 field 的值
    • HGET key field : 获取一个 hash 类型 key 的 field 的值
    • HMSET : 批量添加多个 hash 类型 key 的 field 的值
    • HMGET : 批量获取多个 hash 类型 key 的 field 的值
    • HGETALL : 获取一个 hash 类型的 key 中的所有的 field 和 value
    • HKEYS : 获取一个 hash 类型的 key 中的所有的 field
    • HVALS : 获取一个 hash 类型的 key 中的所有的 value
    • HINCRBY: : 让一个 hash 类型 key 的字段值自增并指定步长
    • HSETNX : 添加一个 hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行

    List

    介绍:

    Redis 中的 List 类型与 Java 中的 LinkedList 类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
    特征也与 LinkedList 类似:

    • 有序
    • 元素可以重复
    • 插入和删除快
    • 查询速度一般

    常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。

    命令:

    • LPUSH key element ... : 向列表左侧插入一个或多个元素
    • LPOP key : 移除并返回列表左侧的第一个元素,没有则返回 nil
    • RPUSH key element ... : 向列表右侧插入一个或多个元素
    • RPOP key : 移除并返回列表右侧的第一个元素
    • LRANGE key star end : 返回一段角标范围内的所有元素
    • BLPOP和BRPOP : 与 LPOP 和 RPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil

    Set

    类似 Java 中的 HashSet,特征:

    • 无序
    • 元素不可重复
    • 查找快
    • 支持交集、并集、差集等功能

    命令:

    • SADD key member ... : 向 set 中添加一个或多个元素

    • SREM key member ... : : 移除 set 中的指定元素

    • SCARD key : 返回 set 中元素的个数

    • SISMEMBER key member : 判断一个元素是否存在于 set 中

    • SMEMBERS : 获取 set 中的所有元素

    • SINTER key1 key2 ... : 求 key1 与 key2 的交集

    • SDIFF key1 key2 ... : 求 key1 与 key2 的差集

    • SUNION key1 key2 .. : 求 key1 和 key2 的并集

    SortedSet

    Redis 的 SortedSet 是一个可排序的 set 集合,与 Java 中的 TreeSet 有些类似,但底层数据结构却差别很大。SortedSet 中的每一个元素都带有一个 score 属性,可以基于 score 属性对元素排序,底层的实现是一个跳表(SkipList)加 hash 表。

    特点:

    • 可排序
    • 元素不重复
    • 查询速度快
    • 因为 SortedSet 的可排序特性,经常被用来实现排行榜这样的功能。

    命令:

    • ZADD key score member : 添加一个或多个元素到 sorted set ,如果已经存在则更新其 score 值
    • ZREM key member : 删除 sorted set 中的一个指定元素
    • ZSCORE key member : : 获取 sorted set 中的指定元素的 score 值
    • ZRANK key member : 获取 sorted set 中的指定元素的排名
    • ZCARD key : 获取 sorted set 中的元素个数
    • ZCOUNT key min max : 统计 score 值在给定范围内的所有元素的个数
    • ZINCRBY key increment member : 让 sorted set 中的指定元素自增,步长为指定的 increment 值
    • ZRANGE key min max : 按照 score 排序后,获取指定排名范围内的元素
    • ZRANGEBYSCORE key min max : 按照 score 排序后,获取指定 score 范围内的元素
    • ZDIFF、ZINTER、ZUNION : 求差集、交集、并集

    注意: 所有的排名默认都是升序,如果要降序则在命令的 Z 后面添加 REV 即可

    Java客户端

    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
    本文信息本文信息防爬虫替换信息
    作者网站LYMTICShttps://lymtics.top
    作者LYMTICS(樵仙)https://lymtics.top
    联系方式contact@mails.rencontact@mails.ren
    原文标题Redis 笔记 01:入门篇Redis 笔记 01:入门篇
    原文地址https://www.cnblogs.com/lymtics/p/16439261.htmlhttps://www.cnblogs.com/lymtics/p/16439261.html
    • 如果您看到了此内容,则本文可能是恶意爬取原作者的文章,建议返回原站阅读,谢谢您的支持
    • 原文会不断地更新和完善排版和样式会更加适合阅读,并且有相关配图
    • 如果爬虫破坏了上述链接,可以访问 `lymtics.top` 获取更多信息
    ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★

    以 Jedis 为例讲解,并讲解了 Spring 的整合: SpringDataRedis (对各种客户端的整合,提供了一套统一的 API)

    Jedis

    快速入门

    步骤一:导包

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.7.0</version>
    </dependency>
    

    步骤二:建立连接

    private Jedis jedis;
    
    @BeforeEach
    void setUp() {
        jedis = new Jedis("192.168.1.12", 6379);
        jedis.auth("abc123");
        jedis.select(0);
    }
    

    步骤三:测试 string

    @Test
    void testString() {
    	String result = jedis.set("name", "Jack");
        System.out.println("Result: " + result);
        String name = jedis.get("name");
        System.out.println("name = " + name);
    }
    

    步骤四:释放资源

    @AferEach
    void tearDown() {
        if (jedis != null) {
            jedis.close();
        }
    }
    

    连接池

    public class JedisConnectionFactory {
        private static final JedisPool jedisPool;
        
        static {
            JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
            // 最大连接
            jedisPoolConfig.setMaxTotal(8);
            // 最大空闲连接
            jedisPoolConfig.setMaxIdle(8);
            // 最小空闲连接
            jedisPoolConfig.setMinIdle(0);
            // 设置最长等待时间, ms
            jedisPoolConfig.setMaxWaitMillis(200);
            jedisPool = new JedisPool(jedisPoolConfig, "192.168.150.101", 6379, 1000, "123321");    
        }
        
        public staic Jedis getJedis() {
            return jedisPool.getResource();
        }
    }
    

    SpringDataRedis

    初步尝试

    步骤一:导包

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
    </dependency>
    

    步骤二:配置

    spring:
      redis:
        host: centos.v
        port: 6379
        password: abc123
        lettuce:
          pool:
            max-active: 8
            max-idle: 8
            min-idle: 0
            max-wait: 100
    

    步骤三:测试

    @SpringBootTest
    class LearnFrameApplicationTests {
    
    	@Autowired
    	private RedisTemplate redisTemplate;
    
    	@Test
    	void contextLoads() {
    		// 写入测试
    		redisTemplate.opsForValue().set("name1", "Value");
    		// 获取
    		Object name = redisTemplate.opsForValue().get("name");
    		System.out.println(name);
    	}
    
    }
    

    此时结果为:

    原因: 默认采用 JdkSerializationRedisSerializer 进行序列化,我们要修改它为其他:

    方案一:自定义序列化器

    引入依赖:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    

    自己创建 redisTemplate, 设置序列器

    @Configuration
    public class RedisConfig {
    
    	@Bean
    	public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
    		// 创建 RedisTemplate 对象
    		RedisTemplate<String, Object> template = new RedisTemplate<>();
    		// 设置连接工厂
    		template.setConnectionFactory(connectionFactory);
    		// 创建JSON序列化工具
    		GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
    		// 设置 Key 的序列化
    		template.setKeySerializer(RedisSerializer.string());
    		template.setHashKeySerializer(RedisSerializer.string());
    		// 设置 Value 的序列化
    		template.setValueSerializer(jsonRedisSerializer);
    		template.setHashValueSerializer(jsonRedisSerializer);
    
    		return template;
    	}
    }
    

    测试普通字符串:

    @SpringBootTest
    class LearnFrameApplicationTests {
    
    	@Autowired
    	private RedisTemplate<String, Object> redisTemplate;
    
    	@Test
    	void contextLoads() {
    		// 写入测试
    		redisTemplate.opsForValue().set("name", "Value");
    		// 获取
    		Object name = redisTemplate.opsForValue().get("name");
    		System.out.println(name);
    	}
    
    }
    

    测试对象:

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class User {
    	private String name;
    	private int age;
    }
    
    @Test
    void testUser() {
        redisTemplate.opsForValue().set("user:100", new User("张三", 12));
    
        User o = (User) redisTemplate.opsForValue().get("user:100");
        System.out.println(o);
    }
    

    结果测试:

    这样的话保存的额外信息会比较多,故有方案二:

    方案二:基于字符串保存

    上面的案例中,之所以能进行序列化和反序列化,是因为我们将类型信息保存在字段中了,这样对我们而言虽然方便了,但是却有点”奸臣掌权“的感觉。

    其实我们可以让 Redis 只保存字符串,而序列化和反序列化的操作则由我们自己操作,以将大权夺回。

    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    
    
    @Test
    void testString2() {
        stringRedisTemplate.opsForValue().set("name", "张飞");
    
        String name = stringRedisTemplate.opsForValue().get("name");
    
        System.out.println(name);
    }
    
    // 这是 Spring 默认的字符串序列化工具
    private static final ObjectMapper mapper=  new ObjectMapper();
    
    @Test
    void testUser2() throws JsonProcessingException {
        User user = new User("赵云", 12);
        String json = mapper.writeValueAsString(user);
        stringRedisTemplate.opsForValue().set("user:200", json);
        String s = stringRedisTemplate.opsForValue().get("user:200");
        User user1 = mapper.readValue(s, User.class);
        System.out.println(user1);
    }
    

    Hash类型尝试

    
    @Test
    void testHash() {
        stringRedisTemplate.opsForHash().put("user:300", "name", "Lucy");
        stringRedisTemplate.opsForHash().put("user:300", "age", "12");
        Map<Object, Object> entries = stringRedisTemplate.opsForHash().entries("user:300");
        System.out.println(entries);
    }
    

    __EOF__

  • 本文作者: LYMTICS
  • 本文链接: https://www.cnblogs.com/lymtics/p/16439261.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    <C++> STL_set/map
    在React中,如何利用React.memo函数对函数组件进行优化?
    解决 MyBatis-Plus 中 ID 自增问题
    周期性触发的自定义触发器
    ceres中的三种求导方式简单入门:自动求导、数值导数、解析求导
    R语言 利用tmap绘制分级色彩地图
    Python学习记录 面向对象编程
    【DRAM存储器十】SDRAM介绍-刷新
    leetcode 70.爬楼梯、322.零钱兑换、279.完全平方数
    【框架学习 | 第六篇】SpringBoot基础篇(快速入门、自动配置原理分析、配置文件、整合第三方技术、拦截器、文件上传/下载、访问静态资源)
  • 原文地址:https://www.cnblogs.com/lymtics/p/16439261.html