Redis数据库一文教必备操作
Posted 孤寒者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据库一文教必备操作相关的知识,希望对你有一定的参考价值。
目录:
每篇前言:
、🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者
- 🔥🔥本文已收录于三大数据库深入讲解专栏:《三大数据库深入讲解》
- 🔥🔥热门专栏推荐:《Python全栈基础教程》、《Django框架从入门到实战》、《爬虫从入门到精通系列教程》、《爬虫高级》、《前端系列教程》、《tornado一条龙+一个完整版项目》。
- 📝📝本专栏面向广大程序猿,为的是大家入门并精通开发python项目常用的三大数据库:mysql,Redis,MongoDB。
- 🎉🎉订阅专栏后可私聊进一千多人Python全栈交流群(手把手教学,问题解答); 进群可领取Python全栈教程视频 + 多得数不过来的计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
- 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!
Redis数据库
- 这是个非关系型数据库哦~那么非关系型数据库又是啥嘞?下面就来讲一讲:
1.NoSQL简介:(Not Only SQL)
NoSQL指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL是web2.0时代海量数据催生的产物。
特点:
-
不支持SQL语法
NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的语法,以及擅长的业务场景。 -
读写性能高
NoSQL数据库具有非常高的读写性能,尤其在海量数据下,它的表现非常优秀。 -
灵活的数据模型
NoSQL的存储方式十分灵活,存储方式可以是JSON文档,键值对(key,value)或其他方式。
2.Redis简介:
Redis是意大利人开发的一款内存高速缓存数据库,是一个高性能的键值对(key-value)存储数据库。全称是:Remote Dictionary Server(远程数据服务),使用C语言编写,并以内存作为数据存储介质,所以读写数据的效率极高。
特性:
-
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
-
Redis不仅仅支持简单的key-value类型的数据,同时还把value分为list,set,zset,hash等数据结构存储。
-
因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,提高效率。
3.Redis数据模型:
-
Redis是key-value的数据结构,每条数据都是一个键值对。
-
键的类型是字符串。
(注意:键不能重复) -
值的类型分为五种:
-
String ————> 字符串
-
Hash ————> 哈希 key:value
-
List ————> 列表
-
set ————> 集合
-
Zest ————> 有序集合
-
4.Redis的基本使用:
- 连接redis:
redis-cli
(中间没有空格哦)
- 127.0.0.1是本机地址;
- 6379是端口号。
-
退出:
exit
-
操作服务端:
sudu service redis start/stop/restart
让redis服务器开始/停止/重启,默认都是开启状态~ -
切换数据库:
select n
数据库没有名称,默认是16个,通过0-15标识,连接redis默认选择第一个数据库。
5.Redis五大数据类型使用:
(1)String类型
string是redis最基本的类型,一个key对应一个value。
-
设置数据:
set key value
-
查看数据:
get key
-
追加数据:
append key value
-
删除数据:
del key
-
添加多个数据:
mset key value [key2 value2...]
(中间空格分开!) -
查看多个数据:
mget key [key2...]
- 取值的一部分:
getrange key start end
(注意:两边都闭)
拓展—全局key操作:
对redis的五个数据类型都适用的命令~ |
-
查看所有的key:
keys *
(中间要有空格)
-
删除键值对:
del key
exists key 查看key是否存在,如果返回1表示存在;返回0表示不存在。
两种配合使用方法:
-
第一种:
del key exists key
-
第二种:先
exists key
再del key
-
改名:
rename key new_key
-
设置过期时间:
expire key seconds
ttl key
查看时间 (如果返回-1表示过期时间已经被删除;如果查看的键不存在,则返回-2) ; -
删除过期时间:
persist key
(2)List类型
List类型是一个字符串列表,可以在列表头部或者尾部添加/删除数据; |
在插入数据时,如果该键并不存在,Redis将为该键创建一个。 |
- 尾部添加数据:
rpush key value[value...]
数据之间用空格分开。
- 头部添加数据:
lpush key value [value...]
- 查看数据:
lrange key start stop
l表示列表,通过范围获取值,包括start和stop。
- 查看某个数据:
lindex key 索引下标
-
修改数据:
lset key 索引下标 value
-
尾部删除数据:
rpop key
- 头部删除数据:
lpop key
- 指定删除:
lrem key 删除次数 指定的值
如果删除次数是0,则意思是全部删除。
(3)Hash类型
- 添加数据:
hset key field value
如果是新增加的数据则返回1;
如果是本来就有的域,则变相为修改域所对应的值,返回为0.
-
如果修改某个域所对应的值,直接用添加数据的命令就可以,会覆盖掉,就相当于修改数据了。
-
hmset 设置多个
- 查看某一个域值:
hget key field
- 查看多个域对应的值:
hmget key field [field...]
- 查看所有的field和value:
hgetall key
-
查看所有的value:
hvals key
-
查看所有的field:
hkeys key
-
删除指定的域和值:
hdel key field
- 删除所有:
del key
(4)Set类型(无序集合)
Set类型为无序的字符集合,元素具有唯一性,不重复。 |
-
添加数据:
sadd key member [member...]
-
查看数据:
smembers key
-
随机删除:
spop key
-
指定删除 :
srem key member [member...]
-
集合的交并差集:
(5)zset类型(有序集合)
【Sorted Set类型(有序集合)】
每一个成员都会有一个分数(score)与之关联。 |
成员是唯一的,但是分数(score)却是可以重复的。 |
-
添加数据:
zadd key score member [score2 member2...]
同样如果成员存在,可以用添加数据的命令修改成员对应的分数,覆盖。
-
查看数据:
zrange key start stop
通过索引查看
- 通过scores值查看:
zrangebyscore key min max
如果相同分数对应多个成员,那么多个成员按ascii排序。
-
删除数据:
zrem key member [member...]
-
通过索引删除多个数据:
zremrangebyrank key min max
- 通过scores值删除:
zremrangebyscore key min max
- 查看分数:
zscore key member
member是成员。
以上是关于Redis数据库一文教必备操作的主要内容,如果未能解决你的问题,请参考以下文章
❤️BitmapsHyperLogLogGeospatial❤️——Redis三大特殊数据类型详述(万字长文原理讲解,大厂面试高频知识点,一文尽收囊中)
一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏