【redis】数据类型
来源:互联网 发布:网络大专 自考本科 编辑:程序博客网 时间:2024/06/01 09:36
Redis是一个分布式缓存,也是一个noSql数据库,我们最了解的是Sqlserver或者mysql在使用这些数据库的时候,我们都要涉及到数据类型,redis也不例外。所以接下来我们就一起来看一看redis的数据类型和我们经常使用的数据类型有什么区别。
一、字符串类型(String)
字符串类型时Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。一个字符串类型件允许存储的数据的最大容量是512M。
使用场景:String是场景的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String。比如统计网址的访问次数,就可以使用该数据类型。
赋值
SET Key value
Key="hello"
取值
GET key
Hello
递增数字
INCR num
字符串为整型,返回递增后的值
增加指定整数
INCRBY key increment
指定一次增加的数值
减少指定的整数
DECR key decrement
让键值递减一定的数值
增加指定浮点数
INCRBYFLOAT key increment
向尾部追加值
APPEND key value
获取字符串长度
STRLEN key
同时获得/设置多个键值
MGET key,MSET key value[ key value…]
二、散列类型(Hash)
Redis是采用字典结构以键值对的形式存储,而散列类型的键值也是一种字典结构,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他的数据类型。散列类型常用的场景就是用来存储一个用户信息对象,它实际上是内部存储的value为一个HashMap。
我们也可以试想用String来存储,比如要存储一辆汽车。
Set car “白色,奥迪,80万”
当我们要修改的时候需要拿到所有的信息。增加了序列化/反序列化的开销。
赋值
HSET key field value
插入操作返回1,更新操作返回0
取值
HGET key field
设置多个字段
HMSET key field1 value1 field2 value2
取多个字段值
HMGET key field1 field2
得到所有字段及值
HGETALL key
判断字段是否存在
HEXISTS key field
不存在赋值
HSETNX key field value
增加数字
HINCRBY key field increment
删除
HDEL key field[field]
只获取字段名或字段值
HKEYS key
获得字段数量
HLEN key
三、列表类型(List)
List可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。不过使用链表的代价是通过索引访问元素比较慢,设想我需要找到第1000个元素,这样查找起来就相对有点慢了。当我们需要使用关注列表、粉丝列表等就可以使用Redis的list结构来实现。
两端添加元素
LPUSH key value
Rpush key value
从两端弹出元素
LPOP key
Rpop key
获取列表中元素个数
LLEN key
获取列表片段
LRANGE key start stop
删除列表中指定的值
LREN key count value(删除前count个值为value的元素)
获得/设置指定索引的元素值
LINDEX key index, LSET key index value
只保留列表指定片段
LTRIM key start end
向列表中插入元素
LINSERT key BEFORE/AFTER pivot value
将元素从一个列表转向另一个列表
RPOPLPUSH source destination
四、集合类型(Set)
集合类型和列表很相似,集合类型存储的数据是无序的而且具有唯一性,所以当需要存储一个列表数据,又不希望出现重复数据时,使用set也许是一个很好的选择,比如当我们查询一个人的关注列表时我们可以将其放入集合中。
Set的内部实现是一个value永远为null的HashMap,实际就是通过计算hash的方式来去重。
增加/删除元素
SADD key member
SREM key member
获得集合中的所有元素
SMEMBERS key
判断元素是否在集合中
SISMEMBER key member
集合间运算
SDIFF key差集
SINTER key交集
SUNION key并集
获得/设置指定索引的元素值
LINDEX key index
LSET key index value
只保留列表指定片段
LTRIM key start end
向列表中插入元素
LINSERT key BEFORE
获得集合中元素个数
SCARD key
进行集合运算并将结果存储
SDIFFSTORE destination key
SINTERSTORE destination key
SUNIONSTORE destination key
随机获得集合中元素
SRANDMEMBER key [count]
count为正,获得不重复
为负,可能重复
从集合中弹出一个元素
SPOP key
五、有序集合(Sorted set)
有序集合与集合的区别就是“有序”,它可以通过用户提供一个优先级参数来为元素排序,并且是插入有序的。当需要一个有序且不重复的集合列表可以使用有序集合。
增加元素
ZADD key score member
向有序集合中计入一个元素和该元素的分数
获得元素分数
ZSCORE key member
获得某范围元素列表
ZRANGE key start stop
ZREVRANGE key start stop
获得指定分数范围的元素
ZRANGEBYSCORE key min max
增加某个元素分数
ZINCRBY key increment member
以上就是redis中的几个基本的数据类型,对于redis的数据类型最重要的还是要知道每个数据类型的应用场景,当然这需要我们多实践,在实践中慢慢体会redis的数据类型的应用场景。
- redis 数据类型
- Redis数据类型
- Redis数据类型
- Redis 数据类型
- Redis数据类型
- redis数据类型
- Redis数据类型
- Redis数据类型
- Redis 数据类型
- Redis:数据类型
- redis数据类型
- Redis数据类型
- redis数据类型
- Redis数据类型
- Redis 数据类型
- Redis 数据类型
- redis数据类型
- redis 数据类型
- Poco介绍及编译
- iOS-pushMeBaby经典错误解决
- P1908 逆序对
- FormData的详细介绍及使用
- 创业日志(五)脱不花妹妹
- 【redis】数据类型
- Bootstrap-网格系统学习笔记
- 【科学美国人2008年3月】THE LIMITS OF QUANTUM
- 儿子独立睡觉
- android网络通信之-Http(Android操作HTTP实现与服务器通信)
- VC++工程编译生成 LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 第68篇 摄像头屏蔽(六)
- CentOS7安装Python3.6.0
- 2017.2.5