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 ...
随机推荐
- 在C#中该如何阻止虚方法的覆写
在开发过程中,我们为了让一个类更有生命力,有时会用virtual来修饰一个方法好让子类来覆写它.但是如果有更新的子子类来覆写时,我们又不想让其影响到上一层的覆写,这时候就要用到new virtual来 ...
- 数-模(D/A)转换器
将实现数字信号到模拟信号的转换电流称为数模(D/A)转换器,简称为DAC(Digital - Analog Convert). 目前常见的D/A转化器中,有:权电阻网络D/A转换器.倒T型电阻网络D/ ...
- winform窗体控件(全)
回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...
- jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化
上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...
- 【转】【MySql】脚本备份数据库
#!/bin/bash #this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then mkdir /mydata/d ...
- 【转】NuGet.org 无法访问的解决方法
打开Nuget,发现又出问题了:未能解析此远程名称:’nuget.org’. 在浏览器中输入 http://nuget.org 会发现是无法打开的. 在cmd命令行里输入: nslookup nuge ...
- 20145208 《Java程序设计》第0周学习总结
20145208 <Java程序设计>第0周学习总结 阅读心得 读了老师推荐的几个文章,虽然第四个文章"为什么一定要自学"报告资源不存在而无法阅读,其他的三篇文章都言之 ...
- 我常用的VS技巧
声明:开发工具使用的是VS2013 1.开发 包括编辑,代码补全等 1.1快速选择一行 第一种方式:鼠标停留在要选择的行上,三击. 第二种方式:鼠标停留在要选择的行上,按home键将鼠标停留在行首,按 ...
- LeetCode-66-Plus One
Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...
- C#嵌入dll到资源释放的问题
有些程序运行的时候,可能调用外部的dll,用户使用时可能会不小心丢失这些dll,导致程序无法正常运行,因此可以考虑将这些dll嵌入到资源中,启动时自动释放.对于托管的dll,我们可以用打包软件合成一个 ...