redis常见类型及其适用场景

Redis全称?

Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。
在这里插入图片描述

String
String 类型是包含很多种类的的特殊类型(字节串,整数,浮点),并且是二进制安全的,比如对序列化对象进行存储,图片,进行二进制存储,比如一个简单字符串,数值等。
常规操作
 Set和Get方法
 setnx( not exist)
 setex(expired) 设置有效期(psetex)
 setrange 替换字符串
 mset和mget 一次性获取或设置多个值
 getset 返回旧值设置新值
 append[name] 字符串追加方法
 strlen[name] 获取字符串长度
在这里插入图片描述
面试题 redis key value最大值?
一个key或是value大小最大是512M
memcached 和redis区别?
memcached key最大长度250个字符,value最大是1M的(默认情况)
分布式锁基本原理
setnx来争抢锁
再用expire给锁加一个过期时间防止锁忘记了释放。
计数相关操作
 incr和decr 对某一值进行递增递减(可以用来计数)
 incrby和decrby对某一值进行制定长度递增递减
 incrbyfloat 对浮点数操作
在这里插入图片描述
HASH(map)
应用场景:
面试题
比如我们要一个用户的信息存储内存,包含以下信息:
Key 用户ID
value用户对象包含姓名name,年龄age,生日birthday 等信息
方案1 任何对象都可以转字符串,也可以采用json序列化(程序控制)
方法2 Map 结构 (类似列数据库)
Hash 它特别适合存储对象,相比较而言,将一个对象存在hash类型里比存String类型里占用内存空间更少,并方便存储整个对象
 hset和hget hmset(批量)
 hsetnx
 hincrby和hdecrby 递增和递减
 hexists 存在返回,不存在返回0
 hlen 返回集合所有键数值
 hdel 删除制定field
 hkeys 返回所有字段
 hvals 返回所有value值
 hgetall 返回所有key和value

hset 001 name “zhangsan1”
hmset 001 name “zhangsan2” age 18 birthday “20010121”
HGET 001 name
hgetall 001

List
利用Lists的push的操作,将任务存储在list中,然后工作线程再用pop操作将任务取出进行执行。
List 类型是链表结构的集合,常用于存储任务信息,最近浏览过的文章,常用联系人,主要有pop和push功能
 lpush/rpop 从头部加元素
 rpush/lpop 从尾部加元素
 linsert 插入元素
 lset 将指定下标的元素替换掉
 lrem 删除元素 返回删除个数
 ltrim 保留制定key 的值范围内的数据
 lpop 从list头部删除元素,并返回删除元素
 rpop 从list尾部删除元素,并返回删除元素
 rpoplpush 从尾部删除元素 在从头部加入元素(内部循环)
 lindex 返回key的list中index位置元素
 llen返回元素个数
在这里插入图片描述

Set(去重)
对集合我们可以取交集(SINTERSTORE),并集(SUNIONSTORE),差集(SDIFFSTORE)。
 sadd 添加
 srem 删除
 spop 随机返回删除的key(弹出一个元素)
 sdiff 返回俩集合不同元素
 sdiffstore 返回不同元素存在另一个集合
 smembers 查看集合元素
 smove 从一个set集合移到另一个set集合中(相当于剪切复制)
 scard 查看集合里元素个数
 srandmember 随机返回一个元素
 sismember 判断某元素是否为集合中元素(
返回1代表是集合中元素,返回0则不是)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
ZSet(sorted set)
ZSet 有序集合 (有序且唯一)内部跳跃表实现的
 zadd 添加
 zrem 删除
 zincrby 以制定值去自动减少或增加
 zrangebyscore找到制定区间范围的数据
 zremrangebyrank删除1到1
 zremrangebyscore删除制定需要
 zcard 返回集合里所有元素个数
 zcount 返回集合中score在给定区间的数量
排行榜 延迟队列
在这里插入图片描述

返回排序集合
ZRANGE game 0 -1
返回集合及分数
ZRANGE game 0 -1 WITHSCORES
根据分数范围获取集合
ZRANGEBYSCORE game 0 1

倒序
ZREVRANGE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值