Redis的简单了解以及主从复制
1.Redis的简单了解
Redis是一种高性能的分布式NoSql数据库,持久存储,高并发,数据类型丰富,通过现场申请内存空间,同时可以配置虚拟内存。
五种数据类型:string(字符串,这种格式和memcache是一致的)、hash(哈希)、list(列表,包括队列和栈)、set(集合)、zset(有序集合),使用key-value对的时候,可以直接存入对象,无需进行序列化,默认的使用了.net中自己的序列化,进行处理,所以也会出现对象循环引用的问题,此时需要使用json.net序列化为字符串,然后在存入字符串即可
持久化的两种方式:快照(默认)和AOF
快照是设置每个某个时间,就将数据写到dump.rdb文件中
AOF:将数据写到内存中,然后紧跟着将数据写到磁盘上
快照配置(数据保存在dump.rdb文件)
900s内修改一个数据,保存一次,300s内修改10次,保存一次,60s内修改10000次保存一次
AOF配置(数据保存在aof文件)
默认的AOF方式是关闭的,开启的时候需要改为yes
默认的采用的是everysec,这是一种性能折中的方式,每秒后持久到磁盘的aof文件中,一秒可以做很多操作的。
随着每次向aof执行保存操作,这个文件会变得越来越大,Redis中默认的机制是当服务器的负载低的时候,进行这个文件的重写。我们可以采取的方案:将主服务器的持久化机制全部关掉,(save关掉,aof日志记录关掉),只是在从服务器上开启这些功能,因为从服务器的负载能力比较大
2.Redis的主从复制
memcache无法实现主从复制,Redis可以实现主从复制,可以进行读写分离,一个主多从,只要修改一下配置文件即可,memchae进行读写的时候,是通过哈希算法,选择出任意一个来执行操作,无法实现主服务器和从服务器的区分。
具体的操作步骤:
(1).首先在磁盘上创建两个文件夹,Master服务器文件夹和Slave服务器文件夹
(2).修改主服务器的配置,在redis.windows.conf中修改。例如:bind 127.0.0.1,端口号默认的使用6379
(3)修改从服务器的相关配置,如端口号等
port 6699
bind 127.0.0.1
slaveof 127.0.0.1 6379
# slaveof <masterip> <masterport>
slaveof 127.0.0.1
(4)分别启动Master服务和Slave服务
3.解决死锁
解决并发:
1.使用缓存和静态页
2.使用Nosql数据库
3.可以做数据库集群,读写分离
4.尽量访问方向一致
5.使用临时表
Redis的简单了解以及主从复制的更多相关文章
- Redis集群方案之主从复制(待实践)
Redis有主从复制的功能,一台主可以有多台从,从还可以有多台从,但是从只能有一个主.并且在从写入的数据不会复制到主. 配置 在Redis中,要实现主从复制架构非常简单,只需要在从数据库的配置文件中加 ...
- 深入学习Redis(3):主从复制
前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化. 在Redis的持久化中曾提到,Redis高可用的方案包括持久化.主从复制(及读写分离).哨兵和集群.其中持久化侧重解决的 ...
- redis 的简单命令
以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...
- Redis Cluster 简单安装配置
1 新建目录 “/app/redis”,输入命令 mkdir -p /app/redis 2 先安装ruby-2.3.1.tar.gz 3 测试ruby是否安装成功,输入命令:gem,如果显示以下信息 ...
- Redis 的简单运算
Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...
- python redis 实现简单的消息订阅
python + redis 实现简单的消息订阅 订阅端 import redis from functools import wraps class Subscribe: def __init__( ...
- Redis源码阅读之主从复制——Slave视角
Redis主从复制 为了提高性能和系统可用,Redis都会做主从复制,一来可以分担主库压力,二来在主库挂掉的时候从库依旧可以提供服务.Redis的主从复制是异步复制,返回结果给客户端和同步命令到从库是 ...
- Redis数据库 02事务| 持久化| 主从复制| 集群
1. Redis事务 Redis不支持事务,此事务不是关系型数据库中的事务: Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的 ...
- redis介绍(5)主从复制
redis的主从复制: 主从复制介绍:redis的主从复制情况下,一个master节点下可以有多个slave节点,而且每个slave节点又可以有很多slave节点,形成很大的集群量级,我简单画个图,如 ...
随机推荐
- C 字符串操作函数
针对C风格的字符串(char p[n];): 长度(strlen).追加(strcat, strncat).比较(strcmp, strncmp).查找(strchr, strstr)等. --带n的 ...
- Zookeeper 应用程序
Zookeeper为分布式环境提供灵活的协调基础架构.ZooKeeper框架支持许多当今最好的工业应用程序.我们将在本章中讨论ZooKeeper的一些最显着的应用. 雅虎 ZooKeeper框架最初是 ...
- jQuery中 wrap() wrapAll() 与 wrapInner()的差异
wrap() 方法把每个被选元素放置在指定的 HTML 内容或元素中.jQuery 文档操作 - wrapAll() 方法 wrapAll() 在指定的 HTML 内容或元素中放置所有被选的元素.jQ ...
- Android学习笔记——Menu(一)
背景: Android3.0(API level 11)开始,Android设备不再需要专门的菜单键. 随着这种变化,Android app应该取消对传统6项菜单的依赖.取而代之的是提供anction ...
- MathType公式保存后为什么字体会变化
在使用MathType数学公式编辑器的时候,很多的用户朋友是新手会遇到一些问题,比如,有时我们保存后却发现MathType公式字体变化了,原本的斜体变成了正体,面对这种问题我们该如何解决呢?下面就来给 ...
- Collabration Web Application Screenshot(English Language) Free download now!
The screenshots of english language version collabration web application which is as following: Incl ...
- 如何根据select选择的值反查option的属性
有时候select已经被选中了,想知道这个选中option的属性又该如何处理呢? 我这里提供一种粗暴的方式 <!DOCTYPE HTML> <html lang="en-U ...
- SVN-001
1.cd到指定目录: 2.执行:svn cleanup:
- mybatis之parameterType传递多个参数
当在查询的时候需要传入多个参数的时候该怎么办呢: 1,封装成一个Model对象,底层HashMap还是一个 User user=new User(); user.setUserName("z ...
- 说说M451例程讲解之LED
/**************************************************************************//** * @file main.c * @ve ...