learn.lianglianglee.com/专栏/Redis 核心原理与实战/index.html
2022-08-14 03:40:33 +08:00

213 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>Redis 核心原理与实战</h1>
<ul>
<li><a href = '\专栏\Redis 核心原理与实战\01 Redis 是如何执行的.md.html'>01 Redis 是如何执行的</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\02 Redis 快速搭建与使用.md.html'>02 Redis 快速搭建与使用</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\03 Redis 持久化——RDB.md.html'>03 Redis 持久化——RDB</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\04 Redis 持久化——AOF.md.html'>04 Redis 持久化——AOF</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\05 Redis 持久化——混合持久化.md.html'>05 Redis 持久化——混合持久化</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\06 字符串使用与内部实现原理.md.html'>06 字符串使用与内部实现原理</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\07 附录:更多字符串操作命令.md.html'>07 附录:更多字符串操作命令</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\08 字典使用与内部实现原理.md.html'>08 字典使用与内部实现原理</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\09 附录:更多字典操作命令.md.html'>09 附录:更多字典操作命令</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\10 列表使用与内部实现原理.md.html'>10 列表使用与内部实现原理</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\11 附录:更多列表操作命令.md.html'>11 附录:更多列表操作命令</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\12 集合使用与内部实现原理.md.html'>12 集合使用与内部实现原理</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\13 附录:更多集合操作命令.md.html'>13 附录:更多集合操作命令</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\14 有序集合使用与内部实现原理.md.html'>14 有序集合使用与内部实现原理</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\15 附录:更多有序集合操作命令.md.html'>15 附录:更多有序集合操作命令</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\16 Redis 事务深入解析.md.html'>16 Redis 事务深入解析</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\17 Redis 键值过期操作.md.html'>17 Redis 键值过期操作</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\18 Redis 过期策略与源码分析.md.html'>18 Redis 过期策略与源码分析</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\19 Redis 管道技术——Pipeline.md.html'>19 Redis 管道技术——Pipeline</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\20 查询附近的人——GEO.md.html'>20 查询附近的人——GEO</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\21 游标迭代器过滤器——Scan.md.html'>21 游标迭代器过滤器——Scan</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\22 优秀的基数统计算法——HyperLogLog.md.html'>22 优秀的基数统计算法——HyperLogLog</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\23 内存淘汰机制与算法.md.html'>23 内存淘汰机制与算法</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\24 消息队列——发布订阅模式.md.html'>24 消息队列——发布订阅模式</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\25 消息队列的其他实现方式.md.html'>25 消息队列的其他实现方式</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\26 消息队列终极解决方案——Stream.md.html'>26 消息队列终极解决方案——Stream</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\27 消息队列终极解决方案——Stream.md.html'>27 消息队列终极解决方案——Stream</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\28 实战:分布式锁详解与代码.md.html'>28 实战:分布式锁详解与代码</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\29 实战:布隆过滤器安装与使用及原理分析.md.html'>29 实战:布隆过滤器安装与使用及原理分析</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\30 完整案例:实现延迟队列的两种方法.md.html'>30 完整案例:实现延迟队列的两种方法</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\31 实战:定时任务案例.md.html'>31 实战:定时任务案例</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\32 实战RediSearch 高性能的全文搜索引擎.md.html'>32 实战RediSearch 高性能的全文搜索引擎</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\33 实战Redis 性能测试.md.html'>33 实战Redis 性能测试</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\34 实战Redis 慢查询.md.html'>34 实战Redis 慢查询</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\35 实战Redis 性能优化方案.md.html'>35 实战Redis 性能优化方案</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\36 实战Redis 主从同步.md.html'>36 实战Redis 主从同步</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\37 实战Redis哨兵模式.md.html'>37 实战Redis哨兵模式</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\38 实战Redis 哨兵模式(下).md.html'>38 实战Redis 哨兵模式(下)</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\39 实战Redis 集群模式(上).md.html'>39 实战Redis 集群模式(上)</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\40 实战Redis 集群模式(下).md.html'>40 实战Redis 集群模式(下)</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\41 案例Redis 问题汇总和相关解决方案.md.html'>41 案例Redis 问题汇总和相关解决方案</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\42 技能学习指南.md.html'>42 技能学习指南</a></li>
<li><a href = '\专栏\Redis 核心原理与实战\43 加餐Redis 的可视化管理工具.md.html'>43 加餐Redis 的可视化管理工具</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>