Redis高性能数据库

一、Redis概述:

redis:是一个可持久化的单进程单线程key-value类型高速内存缓存系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(列表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/popadd/remove及取交集并集和差集及更丰富的操作与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB,并且在此基础上实现了master-slave(主从)同步,当前 Redis的应用已经非常广泛,国内像新浪、淘宝,国外像 FlickrGithub等均在使用Redis的缓存服务。官网地址:https://redis.io/ ,目前由redis项目的开发和维护由vmware厂商负责提供支持

优点:

1、性能极高 Redis能支持超过 100K+ 每秒的读写频率

2、丰富的数据类型 Redis支持二进制案例的 Strings, Lists, Hashes, SetsOrdered Sets 数据类型操作

3、原子性 Redis的所有操作都是原子性(即所有操作要么成功要么失败不执行),同时Redis还支持对几个操作全并后的原子性执行

4、Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问

二、应用场景分析:

MySql+Memcached架构的问题:实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,就会遇到很多问题:
1、MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间
2、MemcachedMySQL数据库数据一致性问题
3、Memcached数据命中率低或down机,大量访问直接穿透到DBMySQL无法支撑
4、跨机房cache同步问题

Redis的应用场景:

Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?

1、Redis不仅仅支持简单的k/v类型的数据,同时还提供listsetzsethash等数据结构的存储
2、Redis支持数据的备份,即master-slave模式的数据备份
3、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
4、Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)
 Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)

三、Redis的数据回收策略:

Redis回收策略
volatile-lru 从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
volatile-ttl 从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
volatile-random 从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
allkeys-lru 从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
allkeys-random 从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction(驱逐) 禁止驱逐数据

四、部署Redis高性能数据库

IP地址 主机名 系统 软件
192.168.2.7 C7--07 CentOS 7.4

redis-6.2.6.tar.gz

 下载地址:Redis下载

1.安装Redis

 这里使用的是redis-6.2.6版本


[root@C7--07 ~]# tar zxvf redis-6.2.6.tar.gz                                      
[root@C7--07 ~]# cd redis-6.2.6                                 
[root@C7--07 redis-6.2.6]# make                             
[root@C7--07 redis-6.2.6]# echo $?                         
[root@C7--07 redis-6.2.6]# cd               
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘浪初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值