redis缓存百度百科
A. redis 和 mongodb 比起来优缺点是什么
一、优点:
1、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)
2、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手段。
3、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA的重要手段。
二、缺点:
1、Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)。
2、支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点。
3、Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用。
(1)redis缓存百度百科扩展阅读:
redis使用注意事项:
1、注意垃圾回收:Redis是一个提供持久化功能的内存数据库,如果不指定上面值的过期时间,并且也不进行定期的清理工作,那么Redis内存占用会越来越大,当有一天超过了系统可用内存,那么swap上场,离性能陡降的时间就不远了。
2、使用key值前缀来作命名空间:虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。
3、Redis并不支持Sharding,但是当数据量超过单机内存时,不得不考虑Sharding的事(注意Slave不是用来做Sharding操作的,只是数据的一个备份和读写分离而已)。
B. redis数据类型是什么
redis是一个key-value存储系统。
redis和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
(2)redis缓存百度百科扩展阅读
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
C. 什么是kv数据库
kv数据库是指Key-value数据库,是一种以键值对存储数据的一种数据库,类似java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。
key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
如果辅以实时搜索引擎进行复杂条件检索、全文检索,就可以替代并发性能较低的Mysql等关系型数据库,达到高并发、高性能,节省几十倍服务器数 量的目的。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。
(3)redis缓存百度百科扩展阅读:
数据库的安全直接关系到整个数据库系统的安全,其防护手段主要有以下八点:
1、使用正版数据库管理系统并及时安装相关补丁。
2、做好用户账户管理,禁用默认超级管理员账户或者为超级管理员账户设置复杂密码;为应用程序分别分配专用账户进行访问;设置用户登录时间及登录失败次数限制, 防止暴力破解用户密码。
3、分配用户访问权限时,坚持最小权限分配原则,并限制用户只能访问特定数据库,不能同时访问其他数据库。
4、修改数据库默认访问端口,使用防火墙屏蔽掉对 外开放的其他端口,禁止一切外部的端口探测行为。
5、对数据库内存储的重要数据、敏感数据进行加密存储,防止数据库备份或数据文件被盗而造成数据泄露。
6、设置好数据库的备份策略,保证数据库被破坏后能迅速恢复。
7、对数据库内的系统存储过程进行合理管理,禁用掉不必要的存储过程,防止利用存储过程进行数据库探测与攻击。
8、启用数据库审核功能,对数据库进行全面的事件跟踪和日志记录。
参考资料来源:
网络-Key-Value
网络-数据库
D. redis过期策略有哪些
redis 过期策略是:定期删除+惰性删除。
所谓定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。
假设redis里放了10w个key,都设置了过期时间,每隔几百毫秒,就检查10w个key,那redis基本上就死了,cpu负载会很高的,消耗在检查过期key上了。实际上redis是每隔100ms随机抽取一些key来检查和删除的。
Redis常用内存优化:
Redis内部实现没有对内存分配方面做过多的优化,在一定程度上会存在内存碎片,不过大多数情况下这个不会成为Redis的性能瓶颈,不过如果在Redis内部存储的大部分数据是数值型的话,Redis内部采用了一个shared integer的方式来省去分配内存的开销。
即在系统启动时先分配一个从1~n那么多个数值对象放在一个池子中,如果存储的数据恰好是这个数值范围内的数据,则直接从池子里取出该对象,并且通过引用计数的方式来共享,这样在系统存储了大量数值下。
也能一定程度上节省内存并且提高性能,这个参数值n的设置需要修改源代码中的一行宏定义REDIS_SHARED_INTEGERS,该值默认是10000,可以根据自己的需要进行修改,修改后重新编译就可以了。
以上内容参考网络—Redis
E. 数据库管理系统软件有哪些
数据库管理系统软件:
1、OracleDatabase
知名的Oracle数据库,一直处于行业领先地位,是许多人认可的、世界上最流行的关系数据库管理系统。
作为“十大数据库管理系统排名榜”之首,Oracle数据库使用方便、功能强大,可扩展性强、数据安全性强,系统可移植性好、稳定性佳,适用于各类大、中、小微机环境。2019年,艾媒金榜发布“企业服务品牌之HRM系统排行榜”,Oracle数据库位列第一。
2、Navicat
Navicat是一套可创建多个连接的数据库管理工具,可以方便管理Oracle、MySQL、PostgreSQL等多个不同类型的数据库,并支持管理腾讯云、阿里云等云数据库。
整体而言,Navicat的功能可以满足专业开发人员的需求,同时对数据库服务器初学者来说又相对容易。曾有一项数据统计,《财富》世界500强中有超过100家公司使用了Navicat。
3、DBeaver
DBeaver是一个通用的数据库管理工具和SQL客户端,具有相对较高的易用性,并且免费、支持跨平台使用、允许扩展插件。
支持的操作系统包括Windows、Linux、MacOS、Solaris、AIX、HPUX;基本特性编辑:支持数据库元数据浏览,支持元数据编辑(包括表/列/键/索引),支持SQL语句和脚本的执行,支持SQL关键字高亮显示,简单友好的显示页面。
4、Mysql
MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL也是最好的RDBMS应用软件之一。
作为十大数据库管理系统之一,MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言;其软件采用双授权政策,分社区版、商业版,由于其速度快、体积小、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
5、phpMyAdmin
phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理系统软件,管理者可用Web接口管理MySQL数据库。
功能特性包括但不限于:支持大多数MySQL功能;从CSV和SQL导入数据,将数据导出为各种格式;以各种格式创建数据库布局的图形;使用逐例查询(QBE)创建复杂查询;使用一组预定义的函数将存储的数据转换为任何格式。
6、IBMDB2
DB2是IBM公司开发的关系型数据库系统,主要应用于大型应用系统,具有较好的可伸缩性,支持从大型机到单用户环境。
DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2可以在Windows、UNIX和Linux操作系统上运行,是最强大的十大数据库管理系统之一。
7、MSSQLServer
SQL Server是微软推出的关系型数据库管理系统,具有使用方便、可伸缩性佳、与相关软件集成程度高等优点,可跨平台使用。SQL Serve最初是由微软、Sybase 和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了,Microsoft将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server的Windows NT版本。Sybase则较专注于SQL Server在Unix系统上的应用。
8、ApacheCassandra
数据库管理软件哪个好?ApacheCassandra是一款优秀的分布式数据库软件。
该DBMS软件突出特点:一,模式灵活,使用时就像文档存储,用户不必提前解决记录中的字段,可以在系统运行时随意的添加或移除字段,最终提升效率。
二,具有纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台计算机,用户不必重启任何进程,改变应用查询,或手动迁移任何数据。三,多数据中心识别。
9、Redis
Redis是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL的数据库。
其主要特点:性能优秀,数据是存储在内存中,读写速度非常快,可支持并发10WQPS;可作为分布式锁;支持五种数据类型;支持数据持久化到磁盘;可以作为消息中间件使用等。数据缓存是Redis极其重要的一个场景。
10、Sybase
十大数据库管理系统排名榜中的Sybase,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。
Sybase还提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。
F. Redis和Memcache的区别总结
区别:
1、存储方式不同
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小;redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化(笔者注:有快照和AOF日志两种持久化方式,在实际应用的时候,要特别注意配置文件快照参数,要不就很有可能服务器频繁满载做mp)。
2、数据支持类型不同
redis在数据支持上要比memecache多的多。
3、使用底层模型不同
新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
4、运行环境不同
redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上。
(6)redis缓存百度百科扩展阅读
注意事项
1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。
2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 。
4、过期策略–memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10 。
5、分布式–设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一,存储数据安全–memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化) 。