没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
redis数据类型及应用场景知识点总结数据类型及应用场景知识点总结
在本篇文章里小编给大家整理的是关于
redis数据类型及应用场景数据类型及应用场景
Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
一、一、string
简介:Strings数据类型是最常用、简单的key-value类型,普通的key/ value 存储都可以归为此类。value不仅可以是字符串,
也可以是数字。因为是二进制安全的,所以你完全可以把一个图片文件的内容作为string来存储。Redis的string可以完全实现
目前memcached的功能,并且效率更高。除了提供与 Memcached 一样的get、set、incr、decr 等操作外,Redis还额外提供
了下面一些操作:
1. 获取字符串长度
2. 往字符串append内容
3. 设置和获取字符串的某一段内容
4. 设置及获取字符串的某一位(bit)
5. 批量设置一系列字符串的内容
常用命令: set,get,decr,incr,mget 等。
应用场景:
1. 应用 Memcached和CKV的所有场景。字符串和数字直接存取。结构化数据需要先序列化,再set到value;相应的,get到
value后需要反序列化。
2. 可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果。即可以用来实现业务上的统计计数需
求。也可用于实现idmaker,即生成全局唯一的id。
3. 存放session key,实现一个分布式session系统。Redis的key可以方便地设置过期时间,用于实现session key的自动过期。
验证skey时先根据uid路由到对应的redis,如取不到skey,则表示skey已过期,需要重新登录;如取到skey且校验通过则升级
此skey的过期时间即可。
4. Set nx或SetNx,仅当key不存在时才Set。可以用来选举Master或实现分布式锁:所有Client不断尝试使用SetNx master
myName抢注Master,成功的那位不断使用Expire刷新它的过期时间。如果Master挂掉了key就会失效,剩下的节点又会发生
新一轮抢夺。
5. 借助redis2.6开始支持的lua脚本,可以实现更安全的2种分布式锁:一种适用于各进程竞争但总是单个进程获取锁并处理的
场景。除非原处理进程挂掉因而锁过期才会被其它进程获取到锁。无须主动解锁。通过get、expire/pexpire、setnx ex| px的
lua脚本实现;一种适用于各进程竞争获取锁并处理的场景。通过set nx ex| px获取锁,用完需要通过先get判断再del释放锁,
否则在锁过期之前不能获取到锁。
6. GetSet, 设置新值,返回旧值。比如实现一个计数器,可以用GetSet获取计数并重置为0。
7. GetBit/SetBit/BitOp/BitCount, BitMap的玩法,比如统计今天的独立访问用户数时,每个注册用户都有一个offset,他今天
进来的话就把他那个位设为1,用BitCount就可以得出今天的总人数。
8. Append/SetRange/GetRange/StrLen,对文本进行扩展、替换、截取和求长度,对特定数据格式非常有用。
实现方式:String在redis内部存储默认就是一个字符串,被redisObject所引用,当遇到incr,decr等操作时会转成数值型进行计
算,此时redisObject的encoding字段为int。
二、二、Hash
简介:Hash存的是字符串和字符串值之间的映射。Hash将对象的各个属性存入Map里,可以只读取/更新对象的某些属性。这
样有些属性超长就让它一边呆着不动,另外不同的模块可以只更新自己关心的属性而不会互相并发导致覆盖冲突。
常用命令:hget,hset,hgetall 等。
应用场景:
1. 存放结构化数据,比如用户信息。在Memcached或CKV中,对于用户信息比如用户的昵称、年龄、性别、积分等,我们需
要先序列化后存储为一个字符串的值,这时候在需要修改其中某一项时,通常需要将所有值取出反序列化后,修改某一项的
值,再序列化存储回去。这样不仅增大了开销,也不适用于一些可能并发操作的场合(比如两个并发的操作都需要修改积
分)。而Redis的Hash结构可以使你像在数据库中Update一个属性一样只修改某一项属性值。如下图:
资源评论
weixin_38715094
- 粉丝: 4
- 资源: 916
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功