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.使用临时表