Redis 笔记 01:入门篇
Redis 笔记 01:入门篇

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

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

本文信息 | 本文信息 | 防爬虫替换信息 |
---|---|---|
作者网站 | LYMTICS | https://lymtics.top |
作者 | LYMTICS(樵仙) | https://lymtics.top |
联系方式 | contact@mails.ren | contact@mails.ren |
原文标题 | Redis 笔记 01:入门篇 | Redis 笔记 01:入门篇 |
原文地址 | https://www.cnblogs.com/lymtics/p/16439261.html | https://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
剩下的就可以自行发挥了 enable
, start
, stop
客户端连接
命令行
[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
几款软件:
- RedisDesktopManager
- RedisInsight
数据结构

本文信息 | 本文信息 | 防爬虫替换信息 |
---|---|---|
作者网站 | LYMTICS | https://lymtics.top |
作者 | LYMTICS(樵仙) | https://lymtics.top |
联系方式 | contact@mails.ren | contact@mails.ren |
原文标题 | Redis 笔记 01:入门篇 | Redis 笔记 01:入门篇 |
原文地址 | https://www.cnblogs.com/lymtics/p/16439261.html | https://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
:删除一个指定的 keyEXISTS
:判断 key 是否存在EXPIRE
:给一个 key 设置有效期,有效期到期时该 key 会被自动删除TTL
:查看一个 KEY 的剩余有效期
String
介绍:
String 类型,也就是字符串类型,是 Redis 中最简单的存储类型。其 value 是字符串,不过根据字符串的格式不同,又可以分为 3 类:
string
:普通字符串int
:整数类型,可以做自增、自减操作float
:浮点类型,可以做自增、自减操作
不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过512m。
命令:
SET
: 添加或者修改已经存在的一个 String 类型的键值对GET
: 根据 key 获取 String 类型的 valueMSET
: 批量添加多个 String 类型的键值对MGET
: 根据多个 key 获取多个 String 类型的 valueINCR
: 让一个整型的 key 自增 1INCRBY
: 让一个整型的 key 自增并指定步长,例如:incrby num 2 让 num 值自增 2INCRBYFLOAT
: 让一个浮点类型的数字自增并指定步长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 和 valueHKEYS
: 获取一个 hash 类型的 key 中的所有的 fieldHVALS
: 获取一个 hash 类型的 key 中的所有的 valueHINCRBY:
: 让一个 hash 类型 key 的字段值自增并指定步长HSETNX
: 添加一个 hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行
List
介绍:
Redis 中的 List 类型与 Java 中的 LinkedList 类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
特征也与 LinkedList 类似:
- 有序
- 元素可以重复
- 插入和删除快
- 查询速度一般
常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。
命令:
LPUSH key element ...
: 向列表左侧插入一个或多个元素LPOP key
: 移除并返回列表左侧的第一个元素,没有则返回 nilRPUSH 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客户端

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

以 Jedis 为例讲解,并讲解了 Spring 的整合: SpringDataRedis (对各种客户端的整合,提供了一套统一的 API)
Jedis
- 官网: redis/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);
}
Redis 笔记 01:入门篇的更多相关文章
- Redis详解入门篇
Redis详解入门篇 [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介 ...
- Redis详解入门篇(转载)
Redis详解入门篇(转载) [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 ...
- 微信小程序笔记整理--入门篇。
7-2 微信小程序入门篇 准备篇 1.登录网址,https://mp.weixin.qq.com 注册一个微信小程序. 2.获取微信小程序appid,登录自己的小程序后台,在开发者设置中获得appid ...
- Asp.Net Core学习笔记:入门篇
Asp.Net Core 学习 基于.Net Core 2.2版本的学习笔记. 常识 像Django那样自动检查代码更新,自动重载服务器(太方便了) dotnet watch run 托管设置 设置项 ...
- Sass学习笔记之入门篇
Sass又名SCSS,是CSS预处理器之一,,它能用来清晰地.结构化地描述文件样式,有着比普通 CSS 更加强大的功能. Sass 能够提供更简洁.更优雅的语法,同时提供多种功能来创建可维护和管理的样 ...
- redis 笔记01 简单动态字符串、链表、字典、跳跃表、整数集合、压缩列表
文中内容摘自<redis设计与实现> 简单动态字符串 1. Redis只会使用C字符串作为字面量,在大多数情况下,Redis使用SDS(Simple Dynamic String,简单动态 ...
- pytest 学习笔记一 入门篇
前言 之前做自动化测试的时候,用的测试框架为Python自带的unittest框架,随着工作的深入,发现了另外一个框架就是pytest (官方地址文档http://www.pytest.org/en/ ...
- Redis笔记01——win10 64位系统安装Redis 3.2.100
前言 由于项目中需要用到Redis,所以先在自己的win10上安装来体验一下. 安装步骤 一.下载地址 Redis下载地址 我选择的是3.2.100 的 64位 zip版本 二.安装位置以及文件简介 ...
- Redis系列一 - 入门篇
问:项目中为何要选用Redis? 答:传统的关系型数据库(如MySQL)已经不适用所有的场景了,比如美云销抢单活动的库存扣减,APP首页的访问流量高峰等等,都容易把数据库打崩,所以引入了缓存中间件,目 ...
随机推荐
- Mysql 连续时间分组
该方案:不限于本例的时间连续,也可适用于其他按连续分组. 连续条件 分组这问题困扰了很久,之前觉得在SQL上很难处理,都是在程序上做处理.后面实在有太多这需求了,所以只能想办法在SQL上处理了. 如下 ...
- vue - vue基础/vue核心内容
终于算是顺利进入vue了,确实也只有学了过后才知道,之前三过vue而不学,确实是对的,现在进来了一点都不后悔,ajax.node.js.promise.webpack.git等等确实是除了三大基础外还 ...
- iNeuOS工业互联网操作系统,数据点、设备和业务的计算与预警
目 录 1. 概述... 2 2. 概念解释... 2 3. 数据点的计算与预警... 2 4. 设备的计算与预警... 3 5. 业务的 ...
- 这些 Shell 分析服务器日志命令集锦,收藏好
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看 ...
- 流量录制回放工具jvm-sandbox-repeater入门篇——录制和回放
在上一篇文章中,把repeater服务部署介绍清楚了,详细可见:流量录制回放工具jvm-sandbox-repeater入门篇--服务部署 今天在基于上篇内容基础上,再来分享下流量录制和回放的相关内容 ...
- 浅尝Spring注解开发_Servlet3.0与SpringMVC
浅尝Spring注解开发_Servlet 3.0 与 SpringMVC 浅尝Spring注解开发,基于Spring 4.3.12 Servlet3.0新增了注解支持.异步处理,可以省去web.xml ...
- 一起看 I/O | Flutter 3 正式发布!
作者 / Tim Sneath, Google Flutter 和 Dart 产品组产品经理 Flutter 3 实现了 Flutter 以移动端为中心扩展到多平台的产品规划,并在今年 I/O 大会的 ...
- JavaScript 任务池
JavaScript 任务池 本文写于 2022 年 5 月 13 日 线程池 在多线程语言中,我们通常不会随意的在需要启动线程的时候去启动,而是会选择创建一个线程池. 所谓线程池,本意其实就是(不止 ...
- 拯救一切强迫症 - 读《编写可维护的 JavaScript》(一)
拯救一切强迫症 - 读<编写可维护的 JavaScript>(一) 本文写于 2020 年 4 月 24 日 我在小学的时候就有接触过编程,所以读大一的时候 C 语言还算是轻车熟路.自然会 ...
- Jwt隐藏大坑,通过源码帮你揭秘
前言 JWT是目前最为流行的接口认证方案之一,有关JWT协议的详细内容,请参考:https://jwt.io/introduction 今天分享一下在使用JWT在项目中遇到的一个问题,主要是一个协议的 ...