redis教程(整理中)
一、redis简介
1、Redis:键值对类型的内存数据库;应用于高并发和实时请求的场景;
2、Redis常用数据类型:
(1) string(基本数据类型)
(2)hash 注:hash中的数据(key-value)只能为字符串类型
(3)list
(4)set 不重复,无序
(5)sorted set ,不重复,有序
3、特点:
(1)高性能 (读速度11W次/s,写速度约8W次/s)
(2)原子性 (可保证数据的准确性)
(3)持久存储(两种方式:RDB快照,AOF日志)
(4)主从结构(master-slave,负载均衡,高可用)
(5)支持集群(3.0版本)
二、部署
1、单机部署
(1)安装依赖
- yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make
(2)下载redis的安装包,然后解压到指定目录,编译、配置
- # tar -zxvf redis-3.0..tar.gz -C /usr/local
- # mv redis-3.0. redis
- # cd redis
- # make
- # make install
(3)修改配置文件
- # cp redis.conf /etc
- # vi /etc/redis.conf #修改如下两个参数即可
- daemonize yes #设置为后台进程
- logfile "/usr/local/redis/log" #设置日志目录
(4)服务启动与关闭
启动redis服务:redis-server /etc/redis.conf
连接到redis中:redis-cli -h 127.0.0.1 -p 6379
停止redis服务:redis-cli shutdown
2、集群部署
(1)集群规划
要让集群正常工作至少需要3个主节点,每个主节点对应需要一个从节点,因此在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下(限于个人电脑配置,仅用一台机器进行模拟,生产环境可以参考):
- 192.168.1.160:
- 192.168.1.160:
- 192.168.1.160:
- 192.168.1.160:
- 192.168.1.160:
- 192.168.1.160:
(2)下载、解压、编译,参考单机模式
- 下载地址: http://download.redis.io/releases/redis-3.0.0.tar.gz
- # tar -zxvf redis-3.0..tar.gz -C /usr/local #与单机模式相同,注意安装依赖
- # mv redis-3.0..tar.gz redis3.
- # cd /usr/local/redis3.
- # make
- # make install
(3)创建集群所需的目录
- mkdir -p /usr/local/cluster
- cd /usr/local/cluster
- mkdir
- mkdir
- mkdir
- mkdir
- mkdir
- mkdir
(4)修改配置文件
- # cp /usr/local/redis3./redis.conf /usr/local/cluster
- # vim redis.conf
- ##修改配置文件中的下面选项
- port
- daemonize yes
- cluster-enabled yes
- cluster-config-file nodes.conf
- cluster-node-timeout
- appendonly yes
- ##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/////7005目录下面
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- cp /usr/local/cluster/redis.conf /usr/local/cluster/
- #注意:拷贝完成之后要修改7001////7005目录下面redis.conf文件中的port参数,分别改为对应的文件夹的名称
(5)启动、验证
- #依次启动各个Redis实例的命令如下:
- cd /usr/local/cluster/
- redis-server redis.conf
- cd /usr/local/cluster/
- redis-server redis.conf
- cd /usr/local/cluster/
- redis-server redis.conf
- cd /usr/local/cluster/
- redis-server redis.conf
- cd /usr/local/cluster/
- redis-server redis.conf
- cd /usr/local/cluster/
- redis-server redis.conf
- #验证:
- ps -ef|grep redis #若有cluster模式的提示,说明成功
(6)创建集群
- #安装依赖,否则会报错
- yum -y install ruby rubygems
- gem install redis
- #创建集群
- cd /usr/local/redis3./src
- ./redis-trib.rb create --replicas 192.168.1.160: 192.168.1.160: 192.168.1.160: 192.168.1.160: 192.168.1.160: 192.168.1.160:
- #根据提示输入yes,集群创建完毕会有提示
(7)启动集群
- # redis-cli -c -p
- #说明:-c指明使用集群的客户端,-p指明端口
3、集群的维护
(1)动态添加节点:
主节点:创建一个空主节点后,需将某些哈希槽移动到这个空节点里面
从节点:创建一个空节点后,把这个新节点设置成集群中某个主节点的复制品。
(2)动态删除节点:
主节点:先转移哈希槽,然后删除;
从节点:直接删除
三、Redis理论知识
1、数据库的特点
(1)多数据库 :默认从0开始16个,不支持自定义;(可修改数据库数目与select切换数据库,用的不多)
多个数据库之间并不是完全隔离的
(2)flushall 与 flushdb
flushall:清空所有数据库中数据;
flushdb:清空当前数据库中的所有数据
(3)注意:redis数据库中没有表,如果想要获取某一类型的数据的话,需要提前对这一批数据的key进行有意义的定义
2、基本命令:
keys 表达式(?,* ,[],\?) 获得符合规则的键名称
exists key 判断一个键是否存在
del key 删除键
del key1 key2 一次删除多个键
获得键值的数据类型type
返回值可能是这五种类型(string,hash,list,set,zset)
注意:redis的命令不区分大小写,键区分大小写
3、常见数据类型的操作命令
(1)String
(2)hash
(3)list
(4)set
(5)sorted set
4、实用tips
(1)set命令:如果 key 已经持有其他类型值, SET 就覆盖旧值,无视类型。
(2)条件查询:redis本身不支持条件查询,但是可以利用reids的一些特性实现类似的条件查询
(3)list使用最频繁,lpush,lpop String次之;
四、Redis进阶
1、expire
2、事务
3、sort
4、发布/订阅模式
5、pipeline
6、持久化
7、安全策略:
8、sentinel
9、主从
10、应用场景
11、优化策略
五、补充
1、一致性哈希
参考:http://www.360doc.com/content/12/0412/17/597197_203070560.shtml
http://blog.csdn.net/ymr0717/article/details/51909225
先列出题纲,后期待续。。。
redis教程(整理中)的更多相关文章
- [个人翻译]Redis 集群教程(中)
上一篇:http://www.cnblogs.com/li-peng/p/6143709.html 官方原文地址:https://redis.io/topics/cluster-tutorial 水 ...
- w3school教程整理
原文链接:http://www.flygon.net/w3school 原文链接:https://github.com/wizardforcel/w3school w3school教程整理 离线版大部 ...
- 原创的离线版 Redis 教程,给力!
嗯,你没看错,松哥又给大家送干货来了.这次是可以离线阅读的 PDF 版教程哦. 之前一直有小伙伴问我有没有 Redis 的电子书,老实说,有是有,但是公开给大家分享,其实有一点点风险,毕竟这都是有版权 ...
- Redis 知识 整理
简介 安装 启动 注意事项 使用命令 通用命令 数据结构 字符串(string) 哈希(hash) 队列(list) 集合(set) 有序集合(zset) 位图(bitcount) 事务 订阅与发布 ...
- Redis教程——检视阅读
Redis教程--检视阅读 参考 Redis教程--菜鸟--蓝本--3.2.100 Redis教程--w3c--3.2.100 Redis教程--w3c--Redis开发运维实践指南 Redis教程- ...
- Redis知识整理
Redis知识整理 转自:https://www.cnblogs.com/rjzheng/p/9096228.html 1.单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返 ...
- Redis初步整理
1,Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的 ...
- Redis 教程 Java工程师学习知识点
1. Redis简介及安装 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下 ...
- FreeMarker 教程整理
Freemarker新手教程 http://blog.csdn.net/qq_23994787/article/details/77506980 FreeMarker教程整理 http://blo ...
- redis教程(一)-----redis数据类型、基本命令、发布订阅以及持久化
简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMwa ...
随机推荐
- 搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)
在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率. 因为是我们自己学习用的实验环境,C ...
- Node.js 命令行程序开发教程
nodejs开发命令行程序非常方便,具体操作方式查看下面几篇文章 http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html ...
- LLVM 笔记(三)—— 了解传统编译器设计
ilocker:关注 Android 安全(新手) QQ: 2597294287 传统的静态编译器 (如大多数的 C 语言编译器) 通常将编译工作分为三个阶段,分别由三个组件来完成:前端.优化器和后端 ...
- Linux下定时执行脚本(转自Decode360)
文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog 老师(业精于勤而荒于嬉 ...
- oh-my-zsh主题
什么是ZSH Zsh和bash一样,是一种Unix shell,但大多数Linux发行版本都默认使用bash shell.但Zsh有强大的自动补全参数.文件名.等功能和强大的自定义配置功能. 一.安装 ...
- 帆软报表FineReport2016年1月份产品更新一览
.条件属性可使用页码参数插件 由于报表计算逻辑关系,条件属性中取不到页码公式.但是有些场景下又是需要在条件属性中取到页码的,比如标题只要偶数页显示,比如奇数页标题标红等等. 插件安装完成后,条件属性里 ...
- (转)浅析Java中的访问权限控制
原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...
- Android UI控件----ExpandableListView的基本用法
ExpandableListView介绍 ExpandableListView的引入 ExpandableListView可以显示一个视图垂直滚动显示两级列表中的条目,这不同于列表视图(ListVie ...
- [No00005B] word快速插入当前时间&怎样一次性删除文档中的全部链接
按Alt+Shift+D键来插入系统日期 按Alt+Shift+T键则插入系统当前时间 同时,在插入的时间上右键->编辑域 一次性删除文档中的全部链接: 方法1:一劳永逸法(推荐) 因为链接大多 ...
- 几个不错的webgl教程网
http://ogldev.atspace.co.uk/index.html http://www.opengl-tutorial.org/ http://blog.wysaid.org/catego ...