Redis学习笔记(一):Redis的数据类型
之前笔者常常接触的数据库是关系型数据库,其中MySQL接触居多。近年来NoSQL兴起,各种新型数据库不断诞生,redis就是NoSQL中的一种热门数据库。 注:此类文章仅仅作为笔者的学习和阅读积累,若有出错之处,敬请谅解。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
一、redis的数据类型
对于redis数据库的介绍,这里就不说了,大家可自行百度,简单来说redis就是以“键值对”形式存储数据的数据库。首先作为一种数据库,对于存储的数据,其必然存在相应的数据存储类型定义,笔者先从redis的存储数据类型说起。 redis数据库存在5种数据类型,分别为:字符串(String)、列表(list)、集合(set)、散列(hash)、有序集合(zset)。(1)字符串
字符串在redis甚至在各大数据库中,都作为最基本的数据类型,可存储的值包括字符串、整数或者浮点数。 redis操作字符串数据常用命令:命令 | 说明 | 基础用法 |
set | 设置存储给定键的值 | set [key] [value] |
get | 获取给定键的值 | get [key] |
del | 删除给定键的值 | del [key] |
(2)列表
可将redis的列表看作一种“双向队列”,该数据结构允许在其前后两端添加/删除元素。 redis操作列表数据常用命令:命令 | 说明 | 基础用法 |
lpush | 将给定值插入列表前端 | lpush [key] [value] |
lpop | 从列表前端弹出并返回一个值 | lpop [key] |
rpush | 将给定值插入列表后端 | rpush [key] [value] |
rpop | 从列表后端弹出并返回一个值 | rpop [key] |
lindex | 获取列表给定索引上的单个元素值 | lindex [key] [index] |
lrange | 获取列表给定范围中的所有元素值 | lrange [key] [startIndex] [endIndex] |
(3)集合
redis和集合和列表都可存储多个字符串,区别在于列表可存储多个相同的字符串,而集合保证存储的元素的唯一性。集合存储元素的方式是无序的。 redis操作集合数据常用命令:命令 | 说明 | 基础用法 |
sadd | 将给定元素添加进集合中 | sadd [key] [value] |
srem | 删除集合中的给定元素 | srem [key] [value] |
sismember | 检查给定元素是否存在于集合中 | sismember [key] [value] |
smembers | 返回集合中的所有元素 | smembers [key] |
(4)散列
redis的散列的值可以存储多个键值对的映射,键无序且不可重复。 redis操作散列数据常用命令:命令 | 说明 | 基础用法 |
hset | 将给定的键值对添加到散列中 | hset [key] [field] [value] |
hget | 获取指定散列键的值 | hget [key] [field] |
hdel | 删除散列中指定的键(连带值) | hdel [key] [field] |
hgetall | 获取散列中的所有键值对 | hgetall [key] |
(5)有序集合
有序集合和散列一样用于存储键值对信息,键和散列的要求一样,不同的是有序集合的值被称为“分值(score)”,分值必须是浮点数。有序集合既可以根据键访问成员,也可以根据分值来访问成员。有序集合的键值对按照分值大小进行排序。 redis操作有序集合数据常用命令:命令 | 说明 | 基础用法 |
zadd | 将给定键值对添加到集合中 | zadd [key] [score] [field] |
zrem | 删除集合中指定的键(连带值) | zrem [key] [field] |
zrange | 获取集合中指定索引范围的键值对 | zrange [key] [startIndex] [endIndex](可选“withscores”参数输出分值) |
zrangebyscore | 获取集合中指定分值范围的键值对 | zrangebyscore [key] [minScore] [maxScore] |
关于五种数据类型以及Redis的更多操作命令,可到此网站下进行查询和了解。
更多精彩