一、redis安装和启动
1.安装c语言环境
yum install gcc-c++
rz 选中压缩波
3.解压和安装redis
tar -zxvf redis-3.0.0.tar.gz
cd /usr/upload/redis-3.0.0
make
make install PREFIX=/usr/local/redis
cp /usr/upload/redis-3.0.0/redis.conf /usr/local/redis/bin
vim /usr/local/redis/bin/redis.conf:
将 daemonize no 修改为 daemonize yes
5. 启动和关闭
启动:
./redis-server redis.conf
关闭:
./redis-cli -h 127.0.0.1 -p 6379 shutdown
二、redis基本命令
keys *:查看所有key
expire和ttl:设置和查看key的失效时间
exists:判断key值是否存在
incr和decr:自增和自减
三、redis的多数据库实例
1、redis实例中提供了下标是0-15的16个数据库,不能修改下标,可通过select切换
2、清空数据库的命令
flushdb:清空当前数据库的数据
flushall:清空所有数据库的数据
四、持久化
1、RDB:默认(数据)
策略:
900 1
300 10
60 10000
缺点:不能保证数据的完整性
优点:不形象性能
实验:
1.删除dump.rdb
2.set str abc
3../redis-cli shutdown(生成持久化文件)
2、AOF:(命令)
策略:
#appendfsync always
appendfsync everysec
优点:保证数据完整性
缺点:影响性能
实验:
1.设置appendonly为yes
2.set str abc
3.等待1秒打开appendonly.aof
五、redis集群
1、redis集群是多少台?
投票容错超过半数:3台 高可用:3台
2、为什么集群中有一台挂了,则整个集群都挂了呢?
redis集群中有16384个槽分给了3个节点,存取数据时:crc16(key)%16384=0~16383
解释:redis集群中有16384个槽因为是三个搭建的集群所以给了3个节点
存取数据时会根据key%16384 = ? 这个槽是谁的就分给谁
3、搭建步骤
1、安装ruby环境
yum install ruby
yum install rubygems
cd /usr/upload
gem install redis-3.0.0.gem
cd redis-3.0.0/src
ll *.rb
1)vim /usr/local/redis/bin/redis.conf
将 cluster-enable no 修改为 cluster-enable yes
2)必须删除/redis/bin/下面的 dump.rdb和appendonly.aof文件(可能没有appendonly.aof)
3)拷贝6个节点
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7001
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7002
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7003
... ... 一共拷贝6个以端口号区分
4)修改配置文件
vim /usr/local/redis-cluster/redis-7001/bin/redis.conf
将 port 6379 修改为 port 7001
vim /usr/local/redis-cluster/redis-7002/bin/redis.conf
将 port 6379 修改为 port 7002
... ... 一共修改6个端口号要和文件名后缀保持一致
4)创建启动脚本(v(视图)-y(复制)-p(粘贴))
在/usr/local/redis-cluster/下
vim start-all.sh
cd /usr/local/redis-cluster/redis-7001/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7002/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7003/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7004/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7005/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7006/bin
./redis-server redis.conf
编辑完后
ctrl+c
:wq 退出
给创建的脚本设置权限
chmod 777 start-all.sh
执行脚本
./start-all.sh
3.查看是否启动
ps -ef | grep redis
启动成功:
4、使用ruby脚本搭建redis集群
cd /usr/upload/redis.3.0.0/src
./redis-trib.rb create --replicas 1 192.168.198.133:7001 192.168.198.133:7002 192.168.198.133:7003 192.168.198.133:7004 192.168.198.133:7005 192.168.198.133:7006
(我是搭建一台linux上面了,如真集群的话需要六台linux,修改ip即可)
如果正常的话输入yes
5、测试
cd /usr/local/redis-cluster/redis-7001/bin
./redis-cli -c -p 7001
成功:
6、创建关闭脚本(v(视图)-y(复制)-p(粘贴))
在cd /usr/local/redis-cluster/下
vim shutdown-all.sh
i
cd /usr/local/redis-cluster/redis-7001/bin
./redis-cli -h 127.0.0.1 -p 7001 shutdown
cd /usr/local/redis-cluster/redis-7002/bin
./redis-cli -h 127.0.0.1 -p 7002 shutdown
cd /usr/local/redis-cluster/redis-7003/bin
./redis-cli -h 127.0.0.1 -p 7003 shutdown
cd /usr/local/redis-cluster/redis-7004/bin
./redis-cli -h 127.0.0.1 -p 7004 shutdown
cd /usr/local/redis-cluster/redis-7005/bin
./redis-cli -h 127.0.0.1 -p 7005 shutdown
cd /usr/local/redis-cluster/redis-7006/bin
./redis-cli -h 127.0.0.1 -p 7006 shutdown
编辑完后
ctrl+c
:wq 退出
给创建的脚本设置权限
chmod 777 start-all.sh
执行脚本
./shutdown-all.sh