redis API的理解和使用
Posted ffzzblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis API的理解和使用相关的知识,希望对你有一定的参考价值。
一、全局命令
1、keys * 查看所有键 时间复杂度为O(n),线上环境禁止使用
2、dbsize 查看键总数
3、rpush 插入一个列表类型的键值对 rpush mylist a b c d
4、exists key 查看键是否存在,如果存在返回1,不存在返回0
5、del key [key ...] 删除键,返回成功删除键的个数
6、expire 设置键过期 expire hello 10 设置键10s过期
7、ttl 返回键的剩余过期时间,大于等于0 -1(没有设置过期时间) -2(没有这个键)
8、type key 键的数据结构类型 返回结果为string list hash set zset 如果键不存在返回none
9、object encoding key 查询内部编码
二、单线程模型
1、内存访问
2、非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上 Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不 在网络I/O上浪费过多的时间,如图2-6所示。因为redis采用的是单线程,但是读写操作又是阻塞式的,所以出现I/O多路复用技术,当一个文件处于读写阻塞状态时,不至于其他的读写操作也被阻塞
3、减少线程的竞争与切换
三、字符串
1、命令
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(获取指定位置的字符串)
2、字符串编码
int(8个字节的长整形) embstr(小于等于39个字节的字符串) raw(大于39个字节的字符串)
3、使用场景
缓存 计数 session共享 限速
四、哈希
1、命令
五、列表
1、命令
2、内部编码
ziplist(压缩列表) linkedlist(链表) quicklist
3、使用场景
消息队列(利用lpush和brpop)
六、集合
1、命令
2、内部编码
setint(当元素不超过512个且值是整数类型时) hashtable
3、适用场景
七、有序集合
1、有序集合、集合和列表之间的异同点
2、命令
3、内部编码
ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplistentries配置(默认128个),同时每个元素的值都小于zset-max-ziplist-value配 置(默认64字节)
skiplist(跳跃表)
4、适用场景
各排行榜
八、键管理
1、重命名
rename renamenx
2、randomkey(随机返回一个键)
3、过期
expire expireat(设置秒级过期时间戳) pexpire(设置秒级过期时间) pexpireat persist(可以将键的过期时间清除)
4、setex(为set+expire的组合)
5、迁移键
move dump+restore migrate
6、move、dump+restore和migrate之间的比较
7、遍历键
keys scan hscan sscan zscan
数据库方面的命令
dbsize select index(reids默认0-15号数据库,通过select选择) flushdb(清楚当前数据库) flushall(清楚所有数据库)
以上是关于redis API的理解和使用的主要内容,如果未能解决你的问题,请参考以下文章
分布式缓存技术redis学习系列----深入理解Spring Redis的使用