漳州市住房城乡建设局网站,推荐几个做网站比较好的公司,支付宝网页版登录入口,网站定制案例微安电力Nosql数据库服务之redis
一图详解DB的分支产品 Nosql数据库介绍
是一种非关系型数据库服务#xff0c;它能解决常规数据库的并发能力#xff0c;比如传统的数据库的IO与性能的瓶颈#xff0c;同样它是关系型数据库的一个补充#xff0c;有着比较好的高效率与高性能。
专…Nosql数据库服务之redis
一图详解DB的分支产品 Nosql数据库介绍
是一种非关系型数据库服务它能解决常规数据库的并发能力比如传统的数据库的IO与性能的瓶颈同样它是关系型数据库的一个补充有着比较好的高效率与高性能。
专注于key-value查询的redis、memcached、ttserver
解决以下问题 1对数据库的高并发读写需求 2大数据的高效存储和访问需求 3高可扩展性和高可用性的需求 Nosql数据库的应用环境 1数据模型比较简单 2需要灵活性更强的IT系统 3对数据库的性能要求较高 4不需要高度数据一致性 5对于给定KEY比较容易映射复杂值的环境 Nosql软件的分类与特点
1key-value键值存储数据库redis、memcached 用于内容缓存适合负载并扩展大的数据集 数据类型是一系列的键值对 有快速查询功能但存储数据少结构化 对事务的支持不好数据库故障产生时不可进行回滚
2列存储数据库(HBase) 用于分布式的文件系统 以列簇式存储将同一列数据存在一起 查找速度快可扩展强更容易进行分布式扩展 功能相对局限
3面向文件的数据库mongoDB 用于WEB应用较多 数据类型是一系列键值对 查询性能不高没有统一的查询语法
4)图形数据库Graph 社交网络应用较多 不容易做分布式的集群方案
常用的Nosql数据库介绍
1memcached
是一个开源高性能的具有分布式内存对象的缓存系统
特点 1、安装布署简单 2、支持高并发、高性能 3、通过程序或负载均衡可以实现分布式 4、仅为内存缓存重启服务数据丢失 官方网站http://memcached.org
2)memcacheDB
是新浪基于memcached开发的一个开源项目具备了事务恢复功能
特点 1、高并发读写 2、高效存储 3、高可用数据存储 官方网站http://memcachedb.org/benchmark.html
生产环境如何选择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 不同命令延迟差别大
官方网站http://www.redis.io
redis持久化介绍
redis将数据存储于内存中通过快照、日志两种方式实现持久化存储前者性能高会有数据丢失的情况后者相反。 redis应用场景
MYSQLmemcached网站架构的问题数据量大就需要拆表需要扩容数据一致性是个问题 1最佳应用场景就是内存服务 2作为memcached替代方案 3对数据一致性有一定要求但不高的业务 4需要更多数据类型支持的业务 5需要主从同步及负载均衡的业务 redis的安装
要进行主从同步配置可以实现故障切换主上禁用数据持久化从上配置内存要够大
[rootredis-m tools]# wget http://download.redis.io/releases/redis-2.8.24.tar.gz[rootredis-m tools]#tar zxf redis-2.8.24.tar.gz[rootredis-m tools]#cd redis-2.8.24[rootredis-m redis-2.8.24]#make[rootredis-m redis-2.8.24]#make PREFIX/application/redis-2.8.24 install[rootredis-m redis-2.8.24]#ln -s /application/redis-2.8.24 /application/redis[rootredis-m tools]# tree /application/redis/application/redis-- bin|-- redis-benchmark #性能测试工具|-- redis-check-aof #检测更新日志|-- redis-check-dump #检查本地数据库rdb文件|-- redis-cli #命令行客户端操作工具|-- redis-sentinel - redis-server-- redis-server #服务的启动程序### 配置环境变量[rootredis-m tools]# echo PATH/application/redis/bin:$PATH/etc/profile[rootredis-m tools]# source /etc/profile[rootredis-m tools]# which redis-server/application/redis/bin/redis-server查看帮助文档
[rootredis-m tools]# redis-server --helpUsage: ./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 megabytesExamples:./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
启动服务
[rootredis-m ~]# cd /application/redis/ [rootredis-m redis]# lltotal 4drwxr-xr-x 2 root root 4096 Mar 22 04:50 bin[rootredis-m redis]# mkdir conf[rootredis-m redis]# cp /download/tools/redis-2.8.24/redis.conf ./conf/[rootredis-m redis]# redis-server /application/redis/conf/redis.conf [6072] 22 Mar 05:00:51.373 # Server started, Redis version 2.8.24[6072] 22 Mar 05:00:51.374 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add vm.overcommit_memory 1 to /etc/sysctl.conf and then reboot or run the command sysctl vm.overcommit_memory1 for this to take effect. #内存不足的时候数据加载到磁盘可能失效可以使用命令解决或修改配置文件[6072] 22 Mar 05:00:51.375 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.[6072] 22 Mar 05:00:51.375 * The server is now ready to accept connections on port 6379[rootredis-m redis]# lsof -i :6379COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEredis-ser 6072 root 4u IPv6 24271 0t0 TCP *:6379 (LISTEN)redis-ser 6072 root 5u IPv4 24273 0t0 TCP *:6379 (LISTEN)vm.overcommit_memory0表示用户空间请求更多内存时内核尝试估算出余下可用内存1表示内核允许最大限度的的使用内存关闭服务命令
[rootredis-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