小菜鸟总结的Redis部分资料

本文介绍Redis作为高性能key-value数据库的特点,包括其数据类型、安装步骤、优势与局限性,以及持久化策略(RDB与AOF),并探讨了常见的性能问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 什么是Redis

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

2 Redis Linux安装

  2.1 下载路径 :https://redis.io/download

 

2.2 把下载好的文件上传到LINUX服务器上面 执行 tar -zxvf redis-5.0.3.tar.gz会生成一个redis5.0.3文件 然后进入cd redis5.0.3在此文件夹下面执行命令: make

2.3 等待make命令执行完成会生成一个src文件夹 进入src文件 有很多运行命令 启动命令用:redis-server  & (后面加上&符号可以保证退出之后处于运行转态)测试命令用 ./redis-cli

3 Redis数据类型常用()

  Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

   3.1  string 是 redis 最基本的类型,一个 key 对应一个 value。string 类型的值   最大能存储 512MB。

       存储命令: set test "测试"

       查看命令: get test

  3.2 Redis hash 是一个 string 类型的 field 和 value 的映射表

       存储命令: hmset test a1 "测试1" a2 "测试2" ; hmset test a1 "测试1"(可以设置过个值)

       查看命令: hget test a1; hget test a2

 3.3 Redis List列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

      存储命令:lpush test1 a1;lpush test1 a2;lpush test1 a3;....

       查看命令: lrange test1 0 4(从0开始取值取到4)

 

3.4 Redis的Set是string类型的无序集合。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

sadd 命令添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。

       存储命令:sadd t redis ....(不能存储相同的元素)

       查看命令: smembers t 

redis 127.0.0.1:6379> sadd t redis
(integer) 1
redis 127.0.0.1:6379> sadd t mongodb
(integer) 1
redis 127.0.0.1:6379> sadd t rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd t rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers t
1) "redis"
2) "rabitmq"
3) "mongodb"

2 Redis优缺势

1性能高 :因为是纯内存操作,Redis的性能非常出色,性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s (Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征)

2丰富的数据类型:Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

3支持原子性:Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来

4 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

5 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

3 Redis持久化(RDB,AOF)

RDB方式:是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复 RDB是默认开启。

优点 :使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能,恢复速度快

缺点 :RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。

AOF方式:将“操作 + 数据”以格式化指令的方式追加到操作日志文件的尾部,在操作返回后(已经写入到文件或者即将写入), “日志文件”保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。 AOF默认关闭

优点:可以保持数据的完整性,如果设置追加file的时间是1s,如果发生故障最多丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;

缺点:AOF比RDB文件大,回复起来速度慢

4 redis常见性能问题和解决方案:

Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件

如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次

为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值