NoSQL数据库服务之Redis

网友投稿 620 2023-05-09

NoSQL数据库服务之Redis

NoSQL数据库服务之Redis

一图详解DB的分支产品

Nosql数据库介绍

是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。

专注于key-value查询的redis、memcached、ttserver

解决以下问题:

1)对数据库的高并发读写需求

2)大数据的高效存储和访问需求

3)高可扩展性和高可用性的需求

Nosql数据库的应用环境

1)数据模型比较简单

2)需要灵活性更强的IT系统

3)对数据库的性能要求较高

4)不需要高度数据一致性

5)对于给定KEY,比较容易映射复杂值的环境

Nosql软件的分类与特点

1)key-value键值存储数据库(redis、memcached)

用于内容缓存,适合负载并扩展大的数据集数据类型是一系列的键值对有快速查询功能,但存储数据少结构化对事务的支持不好,数据库故障产生时不可进行回滚

2)列存储数据库(***)

用于分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展强,更容易进行分布式扩展功能相对局限

3)面向文件的数据库(mongoDB)

用于WEB应用较多数据类型是一系列键值对查询性能不高,没有统一的查询语法

4)图形数据库(Graph)

社交网络应用较多不容易做分布式的集群方案

常用的Nosql数据库介绍

1)memcached

是一个开源高性能的,具有分布式内存对象的缓存系统

特点:

1、安装布署简单

2、支持高并发、高性能

3、通过程序或负载均衡可以实现分布式

4、仅为内存缓存,重启服务数据丢失

2)memcacheDB

是新浪基于memcached开发的一个开源项目,具备了事务恢复功能

特点:

1、高并发读写

2、高效存储

3、高可用数据存储

生产环境如何选择Nosql数据库

1、最常规的缓存应用,memcached最合适

2、持久化存储方案memcacheDB

3、2000万以内数据量的小数据用memcached

4、大数据量可以用redis

redis持久化数据服务

REmote DIctionary server(redis)是一个基于key-value键值对的持久化数据库存储系统,对支持数据存储类型更多,包括字符串、列表、集合等

是一种持久化缓存服务,会周期的把更新的数据写入磁盘以及把修改操作记录追加到文件里记录下来,还支持主从同步模式,是一个开源的基于C语言编写的,支持网络、内存可持久化的日志型、key-value数据库

redis持久服务的特点

key-value键值类型存储系统支持数据可靠存储单进程单线程高性能服务器恢复比较慢单机qps(秒并发)可以达到10W适合小数据高速读写访问

redis存储系统优、缺点:

可以持久化存储数据支持每秒10W的读写频率支持丰富的数据类型所有操作都是原子性的支持异机主从复制内存管理开销大(低于物理内存的3/5)不同命令延迟差别大

redis持久化介绍

redis将数据存储于内存中,通过快照、日志两种方式实现持久化存储,前者性能高,会有数据丢失的情况,后者相反。

redis应用场景

MYSQL+memcached网站架构的问题:数据量大就需要拆表,需要扩容,数据一致性是个问题

1)***应用场景就是内存服务

2)作为memcached替代方案

3)对数据一致性有一定要求但不高的业务

4)需要更多数据类型支持的业务

5)需要主从同步及负载均衡的业务

redis的安装

要进行主从同步配置,可以实现故障切换,主上禁用数据持久化,从上配置,内存要够大

配置环境变量

[root@redis-m tools]# echo "PATH=/application/redis/bin:$PATH">>/etc/profile [root@redis-m tools]# source /etc/profile [root@redis-m tools]# which redis-server /application/redis/bin/redis-server

查看帮助文档

[root@redis-m tools]# redis-server --help Usage: ./redis-server [/path/to/redis.conf] [options]        ./redis-server - (read config from stdin)        ./redis-server -v or --version        ./redis-server -h or --help        ./redis-server --test-memory  Examples:        ./redis-server (run the server with default conf)        ./redis-server /etc/redis/6379.conf        ./redis-server --port 7777        ./redis-server --port 7777 --slaveof 127.0.0.1 8888        ./redis-server /etc/myredis.conf --loglevel verbose

启动服务

#内存不足的时候,数据加载到磁盘可能失效,可以使用命令解决或修改配置文件

0表示用户空间请求更多内存时,内核尝试估算出余下可用内存

1表示内核允许***限度的的使用内存

关闭服务命令

[root@redis-m redis]# redis-cli shutdown [6072] 22 Mar 05:09:32.699 # User requested shutdown... [6072] 22 Mar 05:09:32.699 * Saving the final RDB snapshot before exiting. [6072] 22 Mar 05:09:32.710 * DB saved on disk [6072] 22 Mar 05:09:32.711 # Redis is now ready to exit, bye bye... [1]+  Done  redis-server /application/redis/conf/redis.conf

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:写给新人的数据库入门指南
下一篇:MySQL中Update修改数据与原数据相同会再次执行吗?
相关文章