Redis学习笔记(一):Redis的数据类型
2024-10-19 16:37:56
之前笔者常常接触的数据库是关系型数据库,其中MySQL接触居多。近年来NoSQL兴起,各种新型数据库不断诞生,redis就是NoSQL中的一种热门数据库。
注:此类文章仅仅作为笔者的学习和阅读积累,若有出错之处,敬请谅解。
一、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的更多操作命令,可到此网站下进行查询和了解。
最新文章
- bzoj1008快速面
- Unity3D 5.x 简单实例 - 发射炮弹
- 深入理解JavaScript中创建对象模式的演变(原型)
- 介绍开源的.net通信框架NetworkComms框架之二 传递类
- SQL SERVER2012中使用游标来备份数据库
- Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用
- Spring配置JNDI的解决方案
- scala学习笔记(1)
- RHCE7.0练习题汇总[转]
- TestNG:org.openqa.selenium.firefox.NotConnectedException: Unable to connect
- 用标准C编写COM(一)
- Mysql安装详解
- [置顶] html学习笔记,锚点,超链接,table布局,表头,h,sub,blockquote,ul,li,ol.dl,加入收藏,打印,弹出窗口
- React 入门最好的实例-TodoList
- Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP
- 深度拾遗(06) - 1X1卷积/global average pooling
- WIN10 拨号连接下 如何开启移动热点
- IDEA调用其它模块module的类方法
- Spark数据分析-记录关联问题
- Spring重要注解@ControllerAdvice