#安装基础依赖,tcl(Tool Command Language)工具命令语言、运行redis命令
$ yum -y install gcc gcc-c++ tcl
#安装redis软件包
$ tar -zxvf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make #没有configure命令,已经生成了makefile文件,直接make即可
$ make test #测试安装环境,若多次运行失败也不影响安装
$ make install PREFIX=/usr/local/redis #安装,prefix需大写
#复制配置文件
$ cd /usr/local/redis
$ cp -a 解压目录/redis-5.0.4/redis.conf .
#启动服务,需指定配置文件
$ /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
#关闭服务杀死相关进程
$ pkill redis 或:kill 进程号
#默认是前台运行、ctrl+C停止、修改配置文件重启
$ vim /usr/local/redis/redis.conf
bind 本机IP地址 #绑定IP地址或回环地址,监听所有IP用0.0.0.0
daemonize yes #改为后台daemon运行
dir /usr/local/redis #指定数据存放目录./
protected-mode no #安全模式、需要密码连接
requirepass 密码值 #设置密码
#重启服务
$ cd /usr/local/redis/
$ ./bin/redis-server redis.conf
$ ss -antp | grep :6379
$ /usr/local/redis/bin/redis-cli -h 服务器IP -p 6379 -a 密码值
6379> set key值 数据 #存键值对
6379> get key值 #根据key值取数据
或:
$ /usr/local/redis/bin/redis-cli -h 服务器IP -p 6379
6379> set key值 数据 #存键值对
6379> auth 密码值
6379> set key值 数据 #存键值对
6379> get key值 #根据key值取数据
#默认开启RDB方式持久化
$ vim /usr/local/redis/redis.conf
#表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 900 1
#表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 300 10
#表示60 秒内如果至少有 10000 个 key 的值变化,则保存
save 60 10000
#文件保存位置、文件名默认是dump.rdb
dir /usr/local/redis
#可以开启AOF方式持久化
$ vim /usr/local/redis/redis.conf
#将no改为yes、打开aof持久化方式
appendonly no
#有写操作,就马上写入磁盘。效率最慢,但是最安全
appendfsync always
#默认,每秒钟写入磁盘一次
appendfsync everysec
#不进行AOF备份,将数据交给操作系统处理。最快,最不安全
appendfsync no
#文件保存位置、重启后产生文件名默认是appendonly.aof
dir /usr/local/redis
$ pkill redis
$ /usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
#字符串(String)
#存储: set key value
127.0.0.1:6379> set username jimmy
#获取: get key
127.0.0.1:6379> get username
#删除: del key
127.0.0.1:6379> del username
#哈希(Hash)
#存储:hset key field value
#存储:hmset key field value field value
127.0.0.1:6379> hset user1 username lisi
127.0.0.1:6379> hset user1 password 123
127.0.0.1:6379> hmset user1 username lisi password 123
#hget key field: 获取指定的field对应的值
#hmget key field field...: 获取多个指定的field对应的值
#hgetall key:获取所有的field和value
127.0.0.1:6379> hget user1 username
127.0.0.1:6379> hgetall user1
#删除指定field: hdel key field
127.0.0.1:6379> hdel user1 username
#删除key: del key
127.0.0.1:6379> del username
#列表(List)
#lpush key value: 将元素加入列表左表
#rpush key value:将元素加入列表右边
127.0.0.1:6379> lpush mylist a
127.0.0.1:6379> rpush mylist b
#根据下标设置某个值:lset key index value
127.0.0.1:6379> lset mylist 2 aa
#lrange key start end :范围获取
#其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素;
127.0.0.1:6379> lrange mylist 0 -1
#根据指定下标取某个值:
127.0.0.1:6379> lindex mylist 0
#获取列表的长度:
127.0.0.1:6379> llen mylist
#lpop删除列表最左侧元素、并返回
#rpop删除列表最左侧元素、并返回
127.0.0.1:6379> lpop mylist
127.0.0.1:6379> rpop mylist
#移除列表中的元素:lrem key count value
127.0.0.1:6379> lrem mylist 1 aa
#集合(set)
#存储:sadd key value
127.0.0.1:6379> sadd myset a
127.0.0.1:6379> sadd myset a #重复了返回0
#获取:smembers key:获取set集合中所有元素
127.0.0.1:6379> smembers myset
#删除:srem key value:删除set集合中的某个元素
127.0.0.1:6379> srem myset a
#有序集合(zset)
#存储:zadd key score value
127.0.0.1:6379> zadd mysort 60 zhangsan
127.0.0.1:6379> zadd mysort 50 lisi
#获取:zrange key start end [withscores]
#获取:zrange mysort 0 -1 withscores
127.0.0.1:6379> zrange mysort 0 -1
127.0.0.1:6379> zrange mysort 0 -1 withscores
#删除:zrem key value
127.0.0.1:6379> zrem mysort lisi
#通用命令
keys * :获取所有的键
type key:获取键对应的value的类型
del key:删除指定的key-value
exists key:判断某个key值是否已经存在
问题:
mysql数据:
id name sex address
1 zs 0 beijing 1:[zs,0,beijng]
2 ls 1 shanghai 1:{name:zs,sex:0,address:beijing}
————————————————————————————
#安装基础依赖
$ yum -y install gcc gcc-c++ tcl
#安装redis软件包
$ tar -zxvf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make #没有configure命令,已经生成了makefile文件,直接make即可
$ make PREFIX=/usr/local/redis install
#复制配置文件
$ cd /usr/local/redis
$ cp 存放路径/redis-5.0.4/redis.conf .
#修改配置文件
$ vim /usr/local/redis/redis.conf
bind 0.0.0.0
port 6379
pidfile /var/run/redis_6379.pid
daemonize yes
dir /usr/local/redis
appendonly yes
protected-mode no
requirepass 密码值
$ /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
$ ss -antp | grep :6379
#安装基础依赖
$ yum -y install gcc gcc-c++ tcl
#安装redis软件包
$ tar -zxvf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make #没有configure命令,已经生成了makefile文件,直接make即可
$ make PREFIX=/usr/local/redis install
#复制配置文件
$ cd /usr/local/redis
$ cp 存放路径/redis-5.0.4/redis.conf .
#修改配置文件
$ vim /usr/local/redis/redis.conf
bind 0.0.0.0
port 6379
pidfile /var/run/redis_6379.pid
daemonize yes
dir /usr/local/redis
appendonly yes
protected-mode no
requirepass 密码值
replicaof 主服务器IP 主服务器port
masterauth 主服务器连接密码
$ /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
$ ss -antp | grep :6379
#连接上主服务器、进行存数据操作
$ ln -s /usr/local/redis/bin/* /usr/local/bin/
$ redis-cli -h 主服务器IP -p 6379 -a 密码
6379> set key值 数据
#连接上从服务器、进行取数据操作
$ ln -s /usr/local/redis/bin/* /usr/local/bin/
$ redis-cli -h 从服务器IP -p 6379 -a 密码
6379> get key值
——————————————————
#安装redis服务
$ yum -y install gcc gcc-c++ tcl
$ tar -zxvf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make
$ make test
$ make PREFIX=/usr/local/redis install
#复制配置文件
$ cd /usr/local/redis
$ cp 存放路径/redis-5.0.4/redis.conf .
#修改配置文件
$ vim /usr/local/redis/redis.conf
bind 本机IP地址
port 6379
pidfile /var/run/redis_6379.pid
daemonize yes
dir /usr/local/redis
appendonly yes
protected-mode no
requirepass 密码值
#两个从服务需要配置
replicaof 主服务器IP 主服务器port
#masterauth 主服务器连接密码
$ ln -s /usr/local/redis/bin/* /usr/local/bin/
$ redis-server /usr/local/redis/redis.conf
$ ss -antp | grep :6379
#连接redis主节点
$ redis-cli
info replcation #查看主从配置信息
set name zhangsan #存储数据测试
#配置各redis节点的哨兵节点,其使用单独的哨兵配置文件、启动单独的进程
#每个哨兵节点,只需要配置监控主节点,便可以自动发现其他的哨兵节点和从节点
$ vim /usr/local/redis/sentinel.conf
port 26379
daemonize yes
logfile "sentinel.log"
# 哨兵核心配置
# sentinel monitor <master-name> <master-host> <master-port> <quorum>
sentinel monitor mymaster 192.168.66.24 6379 2
#entinel monitor:代表监控。
#mymaster:代表主节点的名称,可以自定义。
#192.168.66.24:代表监控的主节点ip
#6379:代表端口
#2:法定数量(quorum),代表只有两个或两个以上的哨兵认为主节点不可用的时候,才会把主节点设置为ODOWN状态,然后进行failover操作
sentinel auth-pass mymaster 主master的密码值
#启动各个哨兵进程
$ redis-sentinel /usr/local/redis/sentinel.conf
或:
$ redis-server /usr/local/redis/sentinel.conf --sentinel
#连接哨兵节点
$ redis-cli -p 26379
info sentinel #看到的是配置文件最后的内容
#tailf /data/6378/sentinel.conf
known-slave:被发现的从服务器节点
known-sentinel:被发现的其他哨兵节点
epoch:用来记录哨兵进行自动故障转移的操作次数
#查看主配置文件或日志文件
1、关掉一个从服务器的redis节点
2、关掉主服务的Redis节点
#关掉主节点的redis服务,查看其它两个从节点的sentinel.conf,看最后sentinel current-epoch 0
#其中,epoch数量为1的被重新推举成主节点,可以连接进去set成功
#恢复了主节点后,作为从节点运行
#可以提供给客户端调用的接口命令:
$ redis-cli -p 26379
#配置在哨兵节点里的主节点名字
sentinel get-master-addr-by-name 主节点的名字
——————————————————
#安装redis服务
$ yum -y install gcc gcc-c++ tcl
$ tar -zxvf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make
$ make test
$ make PREFIX=/usr/local/redis install
#创建存放2个redis实例的目录
$ mkdir -p /data/{6378,6379}
#复制配置文件
$ cp -a 解压目录/redis-5.0.4/redis.conf /data/6378
$ cp -a 解压目录/redis-5.0.4/redis.conf /data/6379
$ vim /data/6378/redis.conf
bind IP地址
port 6378
protected-mode no
daemonize yes
pidfile /data/6378/redis.pid
logfile /data/6378/redis.log
appendonly yes
dir /data/6378
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
$ vim /data/6379
bind IP地址
port 6379
daemonize yes
pidfile /data/6379/redis.pid
logfile /data/6379/redis.log
dir /data/6379
appendonly yes
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
#启动redis进程
$ ln -s /usr/local/redis/bin/* /usr/local/bin
$ redis-server /data/6378/redis.conf
$ redis-server /data/6379/redis.conf
#连接测试
$ redis-cli -p 6378
$ redis-cli -p 6379
#创建3主3从的集群
$ ln -s /usr/local/redis/bin/* /usr/local/bin
$ redis-cli --cluster create --cluster-replicas 1 192.168.66.24:6380 192.168.66.24:6379 192.168.66.25:6380 192.168.66.25:6379 192.168.66.26:6380 192.168.66.26:6379
#其中, - create:创建一个新的集群 - replicas 1 :replicas参数指定集群中每个主节点配备几个从节点,这里设置为1
#连接测试
#连接任意一个节点:(-c通过集群连接)
$ redis-cli -c -p port -h IP地址
#写入key-value值,以字符串类型为例
6379> set name cluster
#查看slot和节点的对应关系
6379> cluster slots
#查看key对应的slot,根据上个命令slot对应的机器,可以推出该key存在的机器
6379> cluster keyslot key
#查看集群里的节点信息
6379> cluster nodes
#查看集群中所有数据
$ redis-cli -c --cluster call 192.168.66.24:6378 keys \*