redis学习
redis 面试问题收集
redis如何优雅地删除大键
redis官方文档
Manual
Data types
Strings
Strings 是redis最基本的redis值类型。redis Strings 是二进制安全,这意味者,redis string 可以包含任意种类的数据,例如一个jpeg图片或者一个序列化的ruby obj。
String value 的最大长度为512MB。
你可以用redis String 来做一些有趣的事情,例如:
- 使用INCR,DECR,INCRBY等命令将Strings 用作计数器
- 使用Strings向Strings追加内容
- 使用GETRANGE,SETRANGE将Strings用作随机访问向量数组
- 使用GETBIT,SETBIT来创建redis的布隆过滤器,使用很少的空间来编码大量的数据
Lists
从时间复杂度的角度来看Redis Lists,它能够支持从头尾常数时间级别的插入和删除,即使是大批量的。访问两端非常快,但是访问大列表的中间需要O(N)。
你可以用列表来做一下事情:
- 在社交网络中用作时间线,使用LPUSH来取回一些最近的插入时间
- 你可以使用LPUSH和LTRIM来创建一个不会超过某个给定范围的元素
- Lists可以用作实现一个原始的消息传递,例如ruby 库中非常著名的Resque
- 你可以使用Lists来做更多的事情,这个类型支持很多命令,包括阻塞命令例如BLPOP
ziplist
/* Each entry in the ziplist is either a string or an integer. */
typedef struct {
/* When string is used, it is provided with the length (slen). */
unsigned char *sval;
unsigned int slen;
/* When integer is used, 'sval' is NULL, and lval holds the value. */
long long lval;
} ziplistEntry;
/*
* ZIPLIST OVERALL LAYOUT
* ======================
*
* The general layout of the ziplist is as follows:
*
* <uint32_zlbytes> <uint32_zltail> <uint16_zllen> <entry> <entry> ... <entry> <uint8_zlend>
*
* ZIPLIST ENTRIES
* ===============
* <prevlen> <encoding> <entry-data>
* prevlen 小于253时,使用一个unsigned int,大于254时,使用5个字节,第一个字
* 节使用FE来表示后面有个大整数
*/
Sets
Hashes
I'm a fucKing fake coder!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】