博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis常见问题
阅读量:6105 次
发布时间:2019-06-21

本文共 2564 字,大约阅读时间需要 8 分钟。

命令  

    
 

安装

   

  redis官网地址:

     1、下载源码,解压缩后编译源码。

$ wget http://download.redis.io/releases/redis-2.8.3.tar.gz$ tar xzf redis-2.8.3.tar.gz$ cd redis-2.8.3$ make

     2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。

mkdir /usr/rediscp redis-server  /usr/rediscp redis-benchmark /usr/rediscp redis-cli  /usr/rediscp redis.conf  /usr/rediscd /usr/redis

     3、启动Redis服务。

$ redis-server   redis.conf

     4、然后用客户端测试一下是否启动成功。

$ redis-cliredis> set foo barOKredis> get foo"bar"
 
demon方式启动, 修改redis.conf中的  daemonize:#是否以后台daemon方式运行 =》yes
redis-server

 配置

daemonize是否以后台进程运行,默认为no

pidfile如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
bind绑定主机IP,默认值为127.0.0.1(注释)
port 监听端口,默认为6379
timeout超时时间,默认为300(秒)
loglevel日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
logfile日志记录方式,默认值为stdout
databases可用数据库数,默认值为16,默认数据库为0
save<seconds><changes>指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
save 900 1  900秒(15分钟)内至少有1个key被改变
save 300 10  300秒(5分钟)内至少有300个key被改变
save 60 10000  60秒内至少有10000个key被改变
rdbcompression存储至本地数据库时是否压缩数据,默认为yes
dbfilename本地数据库文件名,默认值为dump.rdb
dir 本地数据库存放路径,默认值为./
slaveof<masterip><masterport>当本机为从服务时,设置主服务的IP及端口(注释)
masterauth<master-password>当本机为从服务时,设置主服务的连接密码(注释)
requirepass连接密码(注释)
maxclients最大客户端连接数,默认不限制(注释)
maxmemory<bytes>设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendfilename更新日志文件名,默认值为appendonly.aof(注释)
appendfsync更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
vm-enabled是否使用虚拟内存,默认值为no
vm-swap-file虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。

 

应用场景

最大的redis集群,新浪redis集群揭秘:

 

原理、源码、设计思想

一. 文章索引

  A. 单机原理

     1. redis 单线程分析: ,主要说了redis使用epoll

     2. 单机多核: 

      3. Jepsen:测试PostgreSQL、Redis、MongoDB...:  , 主要说了redis的分区分裂测试

    4. 高级课程: 

  B. HA、读写分离与集群

    1. 理想化的reids集群 :, 主要说了一致性hash , 以及工业化的redis集群需求

   2. 盛大创新院: redis replication :

   3. 盛大创新院, redis 集群方案 : 

   4. Redis 多机特性及实现原理:

二. 重点列表

   1. Replication : 最终一致性, rep由slave发起,模式与 hadoop namenode模式一致,采取版本快照(namenode中是文件+内存,这里是内存)+ 后续更新命令的形式同步,可以预计的是,初次rep的时候快照文件很大,对网络和slave的压力较大。写快照和读快照的时候,master和slave都为非阻塞模型。

   2. 尽量使用2.8以上版本,同步过程不会阻塞。 

   3. 如果容忍最终一致性,1主-写,N从-读 的模式可以满足读需求, SORT等耗时操作放在从上。

   3. sentiel:Redis的哨兵,类似zookeeper, 为了HA而弄得东西,监控各master、slave,万一主 挂了就,就从N个从里面挑一个来做主,然后其他N-1同步这个新的主

   4. Redis 是CP系统。C是最终一致性。

       Redis 的 脑分裂问题:

 

转载于:https://www.cnblogs.com/njuzhoubing/p/4150991.html

你可能感兴趣的文章
Matlab随笔之分段线性函数化为线性规划
查看>>
ionic3项目实战教程 - 第3讲 ionic3封装全局网络请求服务app.service
查看>>
Centos7 防火墙 firewalld 实用操作
查看>>
SQL server 动态行转列
查看>>
Apache Jackrabbit 2.18.1 发布,内容储存库
查看>>
Chrome 72 丢弃 HPKP,不再支持TLS1.0和TLS1.1!
查看>>
程序员被聘用的13个开发技能
查看>>
Spring Boot集成Swagger简易教程
查看>>
CLI使用案例8:使用CLI了解基础资源使用状况
查看>>
Android多线程之HandlerThread源码解析
查看>>
针对电脑小白的使用指南
查看>>
区块链开发公司谈区块链能源的机遇
查看>>
js二叉树,前序/中序/后序(最大最小值,排序)
查看>>
Alpine Docker 安装 bash
查看>>
深入源码分析Java线程池的实现原理
查看>>
Auto Layout 使用心得(三)—— 自定义 cell 并使用 Auto Layout
查看>>
使用passportjs进行登录验证
查看>>
对象数组的快速排序
查看>>
Docker 与分布式数据库结合
查看>>
NGINX的奇淫技巧 —— 5. NGINX实现金盾防火墙的功能(防CC)
查看>>