一、Redis 概述
1、什么是 Redis
Redis:redis 是一款高性能的 NOSQL 系列的非关系型数据库。
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求。
目前为止 redis 支持的键值数据类型如下:
① 字符串类型 String
② 哈希类型 hash
③ 列表类型 list
④ 集合类型 set
⑤ 有序集合类型 sortedset
2、Redis 的应用场景
(1)缓存(数据查询、短连接、新闻内容、商品内容等)
(2)聊天室的在线好友列表
(3)任务队列。(秒杀、抢购,12306等)
(4)应用排行榜
(5)网站访问统计
(6)数据过期处理
(7)分布式集群架构中的 session 分离
二、下载安装
1、官网:https://redis.io
2、中文官网:http://www.redis.net.cn/
3、解压直接可以使用
-
-
- redis.windows.conf:配置文件
- redis-cli.exe :redis 的客户端
- redis-server.exe : redis 服务器端
- redis.windows.conf:配置文件
-
三、Redis 的数据结构
redis 存储的是:key,value 格式的数据,其中 key 都是字符串,value 有5种不同的数据结构
value 的数据结构:
(1)字符串类型: string
(2)哈希类型 hash :map 格式
(3)列表类型 list :linkedlist 格式,支持重复元素
(4)集合类型 set :不允许重复元素
(5)有序集合类型 sortedset:不允许重复元素,且元素有顺序
示意图:
四、命令操作
1、操作字符串类型
(1)存储
语法格式:
1 | set key value:存入键值对 |
如:
1 | set username zhangsan |
(2)获取
语法格式:
1 | get key : 根据键获取值 |
如:
1 | get username |
(3)删除
语法格式:
1 | del key :根据键删除键值对 |
如:
1 | del age |
2、操作hash哈希类型
(1)存储
语法格式:
1 | hset key field value:根据键存入,filed为字段名,value为值 |
如:
1 2 | hset myhash username lisi hset myhash password 123 |
(2)获取
语法格式:
1 2 | hget key field: 根据键获取指定的field对应的值 hgetall key :获取所有的field和value |
如:
1 2 | hget myhash username hgetall myhash |
(3)删除
语法格式:
1 | hdel key field |
如:
1 | hdel myhash username |
3、操作list列表类型
列表类型类似于队列结构,可以添加一个元素到列表的头部(左边)或者尾部(右边)
(1)添加
语法格式:
1 2 | lpush key value: 将元素加入列表左表 rpush key value:将元素加入列表右边 |
如:
1 2 | lpush myList a rpush myList c |
(2)获取
语法格式:
1 | lrange key start end :范围获取 |
如:
1 | lrange myList 0 -1 :0表示开头,-1表示尾部 |
(3)删除
语法格式:
1 2 | lpop key : 删除列表最左边的元素,并将元素返回 rpop key : 删除列表最右边的元素,并将元素返回 |
4、操作set集合类型
(1)存储
语法格式:
1 | sadd key value:根据键存入值,不允许重复 |
如:
1 | sadd myset a |
(2)获取
语法格式:
1 | smembers key :根据键获取 set 集合中所有元素 |
如:
1 | smembers myset |
(3)删除
语法格式:
1 | srem key value:删除 set 集合中的某个元素 |
如:
1 | srem key value:删除 set 集合中的某个元素 |
5、操作sortedset有序集合类型
sortedset 不允许存储重复元素,且元素有顺序,每个元素都会关联一个double类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
(1)存储
语法格式:
1 | zadd key score value:根据键存入值,score 为键指定的分数,作为排序的依据 |
如:
1 2 | zadd mysort 60 zhangsan zadd mysort 50 lisi |
(2)获取
语法格式:
1 | zrange key start end [withscores]:withscores作为可选项,添加上,会把对应的分数打印出来 |
如:
1 2 | zrange mysort 0 -1 zrange mysort 0 -1 withscores |
(3)删除
语法格式:
1 | zrem key value:删除指定键集合中的值 |
如:
1 | zrem mysort lisi |
6、通用命令
1 2 3 | keys * : 查询所有的键 type key : 获取键对应的value的类型 del key :删除指定的 key value |
注意:如果给指定的键多次赋值的话,最后一次的赋值会覆盖前面的值。
五、Redis 持久化
redis 是一个内存数据库,当 redis 服务器重启,或者电脑重启后,数据会丢失,我们可以将 redis 内存中的数据持久化保存到硬盘的文件中。
Redis 持久化机制
1、RDB 方式
RDB:默认方式,不需要进行配置,默认就使用这种机制。
在一定的间隔时间中,检测 key 的变化情况,然后持久化。
如果需要修改,执行下面两步即可。
(1)编辑 redis.windows.conf 配置文件
1 2 3 4 5 6 | # after 900 sec (15 min ) if at least 1 key changed save 900 1 # after 300 sec (5 min ) if at least 10 keys changed save 300 10 # after 60 sec if at least 10000 keys changed save 60 10000 |
这是默认的设置,当然也可以根据自己的需要进行设置,然保存
(2)在 DOM 命令窗口,重新启动 redis 服务器,并制定配置文件名称即可。
如:
1 | E:\redis\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf |
2、AOF 方式(不推荐使用)
AOF 方式,日志记录的方式,可以记录每一条命令的操作。可以每次命令后,持久化数据。
修改操作:编辑 redis.windows.conf 文件
1 2 3 4 5 | appendonly no (关闭aof) --> appendonly yes (开启aof) 默认情况是关闭的,设置为 yes 为打开 # appendfsync always : 每一次操作都进行持久化 appendfsync everysec : 每隔一秒进行一次持久化 # appendfsync no : 不进行持久化 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器