redis大要


redis问题画像

在这里插入图片描述



redis特点

数据在计算机存储的位置的不同,性能及成本也是不同的,一般来说遵循速度越快,成本越高,容量越小的规律
在这里插入图片描述



在redis的bin目录下,一般会有这几个二进制文件
在这里插入图片描述

Redis可执行文件 说明
redis-server Redis服务器
redis-cli Redis命令行客户端
redis-benchmark Redis性能测试工具
redis-check-aof AOF文件修复工具(服务器可能在程序正在对 AOF 文件进行写入时停机, 如果停机造成了 AOF 文件出错(corrupt), 那么 Redis 在重启时会拒绝载入这个 AOF 文件, 从而确保数据的一致性不会被破坏。可以使用 Redis 附带的 redis-check-aof 程序,对原来的 AOF 文件进行修复)
redis-check-dump RDB持久化文件检测和修复工具
redis-sentinel Sentinel服务器

Redis常用配置 解释
daemonize 是否开启守护进程
port 对外端口号
logfile Redis系统日志
dir Redis工作目录

命令 时间复杂度
keys O(n)
dbsize O(1)
del O(1)
exists O(1)
expire O(1)
type O(1)

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


由于redis是单线程的,一次只运行一条命令,所以注意要拒绝长(慢)命令,比如:
keysflushallflushdbslow lua scriptmutil/execoperate big value(collection)


其实不是单线程,有的命令会开一个独立的线程去执行,比如:fysnc file descriptorclose file descriptor



string

由于redis单线程,无竞争,所以天然就适合做计数器

命令 含义 时间复杂度
set key value 设置key-value O(1)
get key 获取key-value O(1)
del key 删除key-value O(1)
setnx key 根据key是否存在,设置key-value O(1)
Incr、decr 计数 O(1)
mget、mset 批量操作key-value O(n)
getset key newvalue set key newvalue并返回旧的value O(1)
append key value 将value追加到旧的value O(1)
strlen key 返回字符串的长度(注意中文) O(1)
getrange key start end 获取字符串指定下标所有的值 O(1)
setrange key index value 设置指定下标所有对应的值 O(1)



hash

命令 时间复杂度
hget、 hset、 hdel O(1)
hexists O(1)
hincrby O(1)
hgetall、 hvals、 hkeys O(n)
hmget、 hmset O(n)



list

命令 含义 时间复杂度
rpush key valuel value2…valueN 从列表右端插入值(1-N个) O(1~n)
lpush key valuel value2…valueN 从列表左端插入值(1-N个) O(1~n)
linsert key beforelafter value newValue 在list指定的值前或后插入newValue O(n)
Itrim key start end 按照索引范围修剪列表 O(n)
Irange key start end(包含end) 获取列表指定索引范围所有item O(n)
lindex key index 获取列表指定索引的item O(n)
lpop key 从列表左侧弹出一个item O(1)
rpop key 从列表右侧弹出一个item O(1)
llen key 获取列表长度 O(1)
lrem key count value 根据count值,从列表中删除所有value相等的项
(1)count>0,从左到右,删除最多count个value相等的项
(2)count<0,从右到左,删除最多Math.abs(count)个value相等的项
(3)count=0,删除所有value相等的项
O(n)
lset key index newValue 设置列表指定索引值为newValue O(n)
blpop key timeout Ipop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞 O(1)
brpop key timeout rpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞 O(1)



set

命令 含义 时间复杂度
sadd key element 向集合key添加element(如果element已经存在,添加失败) O(1)
srem key element 将集合key中的element移除掉 O(1)



zset

命令 含义 时间复杂度
zadd key score element 添加score和element O(logN)
zrem key element 删除元素 O(1)
zscore key element 返回元素的分数 O(1)
zincrby key increScore element 增加或减少元素的分数 O(1)
zcard key 返回元素的总个数 O(1)
zrange key start end[WITHSCORES] 返回指定索引范围内的升序元素[分值] O(log(n)+m)
zrangebyscore key minScore maxScore[WITHSCORES] 返回指定分数范围内的升序元素[分值] O(log(n)+m)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值