1、全局命令redis
一、keys * 查看全部键 时间复杂度为O(n),线上环境禁止使用数据库
二、dbsize 查看键总数缓存
三、rpush 插入一个列表类型的键值对 rpush mylist a b c d网络
四、exists key 查看键是否存在,若是存在返回1,不存在返回0session
五、del key [key ...] 删除键,返回成功删除键的个数数据结构
六、expire 设置键过时 expire hello 10 设置键10s过时 app
七、ttl 返回键的剩余过时时间,大于等于0 -1(没有设置过时时间) -2(没有这个键)dom
八、type key 键的数据结构类型 返回结果为string list hash set zset 若是键不存在返回noneui
九、object encoding key 查询内部编码编码
2、单线程模型
一、内存访问
二、非阻塞I/O,Redis使用epoll做为I/O多路复用技术的实现,再加上 Redis自身的事件处理模型将epoll中的链接、读写、关闭都转换为事件,不 在网络I/O上浪费过多的时间,如图2-6所示。由于redis采用的是单线程,可是读写操做又是阻塞式的,因此出现I/O多路复用技术,当一个文件处于读写阻塞状态时,不至于其余的读写操做也被阻塞
三、减小线程的竞争与切换
3、字符串
一、命令
set(setnx(键必须不存在 setxx与nx相反 [ex seconds] [px millisecond])) get mset mget incr(计数,当key中的值为数值时成功计数) decr incrby decrby incrbyfloat
append strlen(中文占用3个字符) getset(先设置值,返回历史数值,当键为空的时候,返回nil) setrange key offeset value(设置指定位置的字符)
getrange key start end(获取指定位置的字符串)
二、字符串编码
int(8个字节的长整形) embstr(小于等于39个字节的字符串) raw(大于39个字节的字符串)
三、使用场景
缓存 计数 session共享 限速
4、哈希
一、命令
5、列表
一、命令
二、内部编码
ziplist(压缩列表) linkedlist(链表) quicklist
三、使用场景
消息队列(利用lpush和brpop)
6、集合
一、命令
二、内部编码
setint(当元素不超过512个且值是整数类型时) hashtable
三、适用场景
7、有序集合
一、有序集合、集合和列表之间的异同点
二、命令
三、内部编码
ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplistentries配置(默认128个),同时每一个元素的值都小于zset-max-ziplist-value配 置(默认64字节)
skiplist(跳跃表)
四、适用场景
各排行榜
8、键管理
一、重命名
rename renamenx
二、randomkey(随机返回一个键)
三、过时
expire expireat(设置秒级过时时间戳) pexpire(设置秒级过时时间) pexpireat persist(能够将键的过时时间清除)
四、setex(为set+expire的组合)
五、迁移键
move dump+restore migrate
六、move、dump+restore和migrate之间的比较
七、遍历键
keys scan hscan sscan zscan
数据库方面的命令
dbsize select index(reids默认0-15号数据库,经过select选择) flushdb(清楚当前数据库) flushall(清楚全部数据库)