redis教程(整理中)

时间:2023-03-09 03:47:28
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.****.net/ymr0717/article/details/51909225

先列出题纲,后期待续。。。