一、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教程(整理中)的更多相关文章

  1. [个人翻译]Redis 集群教程(中)

    上一篇:http://www.cnblogs.com/li-peng/p/6143709.html 官方原文地址:https://redis.io/topics/cluster-tutorial  水 ...

  2. w3school教程整理

    原文链接:http://www.flygon.net/w3school 原文链接:https://github.com/wizardforcel/w3school w3school教程整理 离线版大部 ...

  3. 原创的离线版 Redis 教程,给力!

    嗯,你没看错,松哥又给大家送干货来了.这次是可以离线阅读的 PDF 版教程哦. 之前一直有小伙伴问我有没有 Redis 的电子书,老实说,有是有,但是公开给大家分享,其实有一点点风险,毕竟这都是有版权 ...

  4. Redis 知识 整理

    简介 安装 启动 注意事项 使用命令 通用命令 数据结构 字符串(string) 哈希(hash) 队列(list) 集合(set) 有序集合(zset) 位图(bitcount) 事务 订阅与发布 ...

  5. Redis教程——检视阅读

    Redis教程--检视阅读 参考 Redis教程--菜鸟--蓝本--3.2.100 Redis教程--w3c--3.2.100 Redis教程--w3c--Redis开发运维实践指南 Redis教程- ...

  6. Redis知识整理

    Redis知识整理 转自:https://www.cnblogs.com/rjzheng/p/9096228.html 1.单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返 ...

  7. Redis初步整理

    1,Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的 ...

  8. Redis 教程 Java工程师学习知识点

    1. Redis简介及安装 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下 ...

  9. FreeMarker 教程整理

    Freemarker新手教程 http://blog.csdn.net/qq_23994787/article/details/77506980   FreeMarker教程整理 http://blo ...

  10. redis教程(一)-----redis数据类型、基本命令、发布订阅以及持久化

    简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMwa ...

随机推荐

  1. js中的prototype和__proto__

    var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...

  2. Windows 安装Kafka

    Windows 7 安装Apache kafka_2.11-0.9.0.1     下载所需文件 Zookeeper: http://www.apache.org/dyn/closer.cgi/zoo ...

  3. sql 计算周围公里语句

    $lng2 = set_post('lng'); //当前位置坐标 $lat2 = set_post('lat'); round((*ATAN2(SQRT(SIN((`gps`.`gps_lat`-$ ...

  4. git 中关于LF 和 CRLF 的问题

    git 中关于LF 和 CRLF 的转换问题注意: Windows下编辑器设置中,建议调整设置为Unix风格.(具体设置位置各种编辑器上不同,需要找找) 使用Git Bash进行命令行操作时,运行一下 ...

  5. Mysql日志解析

    修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQL\MySQL Server 5.5 如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去! ...

  6. 关于域名系统DNS解析IP地址的一些总结

    关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...

  7. BZOJ1057[ZJOI2007]棋盘制作 [单调栈]

    题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳. 而我们的 ...

  8. JS组件系列——封装自己的JS组件,你也可以

    前言:之前分享了那么多bootstrap组件的使用经验,这篇博主打算研究下JS组件的扩展和封装,我们来感受下JQuery为我们提供$.Extend的神奇,看看我们怎么自定义自己的组件,比如我们想扩展一 ...

  9. 吉特仓库管理系统-ORM框架的使用

    最近在园子里面连续看到几篇关于ORM的文章,其中有两个印象比较深刻<<SqliteSugar>>,另外一篇文章是<<我的开发框架之ORM框架>>, 第一 ...

  10. 【转】error LNK2019: 无法解析的外部符号 "__declspec(dllimport)

    生成DLL文件的字符集是Unicode而生成exe文件的字符集为默认的ASCII. 只要统一字符集即可解决问题: VS2005的c++项目默认字符集是使用 Unicode 字符集,在项目属性-> ...