当前位置:网站首页>redis的安装与应用
redis的安装与应用
2022-08-02 07:32:00 【不是很帅@】
1. redis
1.1 什么是NOSQL?
nosql(not only sql)不仅仅是sql。NoSQL,泛指非关系型的数据库。非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
非关系数据库和关系型数据库之间的区别:
RDBMS---关系型数据
- 高度组织化结构化数据。
- 结构化查询语言(SQL) select
- 数据和关系都存储在单独的表中。
- 数据操纵语言DML,数据定义语言DDL
- 严格的一致性. 事务 ACID
- 基于事务
NoSQL--非关系型数据库---缓存数据
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 键 - 值对存储 key value
- 非结构化和不可预知的数据
- 高性能,高可用性和可伸缩性。 适合搭建集群。
NOSQL的产品
Mongodb:
redis:
Hbase:针对大数据
1.2 redis
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。
1.3 redis的优点?
1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化–磁盘,主从复制(集群)
5.官方不支持window系统,但是又第三方版本。 linux系统。—
1.4 如何安装redis
安装redis的依赖。
yum install -y gc-c++
解压redis安装包
进入redis解压目录
make 编译c语言
make install 安装redis
启动redis
redis-server redis配置文件名
连接redis
redis-cli 默认连接为127.0.0.1 端口号6379
redis-cli -h ip -p port 远程连接其他人的redis
1.5 简单了解一下redis.conf
1.6 安装redis客户端界面
2. 大纲
1. redis常用命令。
2. redis支持的数据类型以及类型对应的命令。
3. redis的持久化方式。
4. redis集群的搭建。
3. redis常用命令。
http://www.redis.net.cn/order/
3.1 对key操作的命令
1. 查看所有的key [keys *]
2. 为指定的key设置过期时间。 [expire key seconds]
3. 查看key的剩余存活时间 ttl key 返回-1表示永远存在 -2不存在该key
4. 删除指定的key delete key... 返回结果为删除的个数
5. 判断指定的key是否存在 exists key
3.2 对redis数据库的操作
默认redis中由16库。可以通过修改redis配置文件更改数量。
select n: 切换redis库。n[0~databases-1]
flushdb: 清空当前所在的库。
flushall: 清空所有库的内容。----
4. redis支持的数据类型。
我们使用频率最高是: Strings字符串类型,Lists列表类型,Sets集合类型,Hashes哈希类型,Sorted Sets 有序集合。这里所谓的类型,就是value的类型。
4.1 Strings类型
它的value值为String类型,在实际开发中,它可以存储任意的数据类型。因为任何对象可以转换为json字符串。它的默认存放的大小512M.
关于string类型的命令由哪些?
set key value: 存储指定key和value的值。
get key: 获取指定key的value值。
mset key value key value...:存储多个key和value的值
mget key key ...:获取多个key对应的value。
setnx key value: 如果指定的key存在,则不存入。如果不存在,则存入。
setex key second value: 存储指定的key和value并设置过期时间。
incr key: 对指定key的value递增。----点赞 收藏数 主键的递增
decr key: 对指定key的value递减
4.2 Hash哈希类型
它的value值为hash类型,hash类型由field和value组成。适合存储对象。
关于hash类型的命令由哪些?
hset key field value: 存储指定key的field和value值。
hget key field: 获取指定key的field对应的value值。
hgetall key: 获取在哈希表中指定 key 的所有字段和值
hkeys key: 获取指定key所有field名称
hvals key: 获取指定key的所有value值。
hdel key field: 删除指定key对应的field值
4.3 list列表类型
它的value类型为list列表类型,它的value可以是多个值,而且这些者可以重复,有序。一般使用在消息队列。
常用的方法
1.lpush key value value....:从左边存储指定key的对应列表值。
2.lpop key: 移出并获取列表的第一个元素
3.lrange key start end: 获取列表指定范围内的元素
4.lindex key index: 根据下标获取指定的元素
5.lset key index value: 修改指定坐标的元素内容
4.4 set集合类型
它的value类型是一个set集合类型,这个集合类型元素无需,且不能重复。求两个集合的交集
常见的命令
1.sadd key value....:向集合添加一个或多个成员
2.smembers key :返回集合中的所有成员
3.spop key: 随机获取某个元素并移除
4.sinter k1 k2.。。: 返回给定所有集合的交集
4.5 sort set有序集合
它的value类型为一个带分数的集合类型。按照分数排序。应用在: 排行榜
zadd key score value score value.....: 往redis中添加有序集合
zrange key start end: 获取指定返回的元素
ZREVRANGE k1 0 -1 WITHSCORES: 分数从高到低
5. redis的使用场景
1、热点数据的缓存: 减少对数据库的访问频率和减轻数据库的压力。
2. 限时业务的运用: 秒杀 存储登录者用户信息 存储短信验证码
3. 计数器相关问题: 点赞数 收藏数 播放量
4. 排行榜相关问题: sort set
5. 分布式锁:
6. redis的持久化
持久化:把内存中的数据库保存到磁盘上,防止数据的丢失。
redis支持的持久化方式两种:
(1)RDB:快照 其实就是把数据以快照的形式保存在磁盘上,什么是快照呢,你可以理解成把当前时刻的数据拍成一张照片保存下来。
(2)AOF :日志追加 记录服务器接受的每个写入操作,当服务器启动时再次加载该日志,会把日志中的命令重新执行一遍。
6.1 RDB快照持久化方式
6.1.1 RDB的触发方式
1.手动触发
【1】save堵塞型保存
[2]bgsave非堵塞型保存
2.自动触发
默认保存的文件名: dump.rdb 可以在redis.conf名称
save
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
bgsave:
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:
自动触发rdb
修改redis的配置文件。
6.2 AOF日志追加持久化方式
默认该文件的名称:
默认aof不会开启。
查看
aof模式会把每个写操作,记录到一个日志文件,当redis启动时会把该日志中每个指令重新执行一遍。 数据恢复速度慢。数据完整性高。
如果两则都使用,恢复数据时按照aof恢复。因为redis认为它的完整性比较好。大多数使用rdb.
7. redis集群模式
解决单点故障问题。
边栏推荐
- Data reveal that the average cost is as high as $4.35 million in 2022, a record!
- MGRE综合实验
- How to export multiple query results at once in SQL server 2014?
- MySQL报错1055解决办法:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains
- playwright 爬虫使用
- Introduction to Totem Pole and Push-Pull Circuits
- MySQL-FlinkCDC-Hudi enters the lake in real time
- Thesis understanding: "Cross-Scale Residual Network: A GeneralFramework for Image Super-Resolution, Denoising, and "
- Buried development process
- .NET静态代码织入——肉夹馍(Rougamo) 发布1.1.0
猜你喜欢
随机推荐
Transimpedance amplifier
Mysql error 2003 solution Can 't connect to Mysql server on' localhost '(10061).
Postgres horizontal table, automatically create partitions, table by time
FormData upload binary file, object, object array
LeetCode 2312. Sell Wood Blocks
OC-NSString
metabase访问adb mysql 如何控制会话时区??
Hack The Box - File Transfers Module详细讲解中文教程
WebForm DropDownList bind year and month respectively
ROS file system and related commands
MySQL优化之慢日志查询
多表的查询
flutter 自己写一个组件
.NET静态代码织入——肉夹馍(Rougamo) 发布1.1.0
Install Metasploitable2 on VMware
uni.navigateBack 中的坑
MySQL-FlinkCDC-Hudi enters the lake in real time
I.MX6U-ALPHA开发板(EPIT定时器实验)
Appium 滑动问题
牛客2022 暑期多校4 D Jobs (Easy Version)(递推优化策略)