什么是redis?
redis是c语言开发的高性能的k-v形式的数据库,数据存储在内存中,诞生于意大利
redis安装和启动:
1、安装
1)安装c语言环境
yum install gcc-c++
2)上传并解压
cd /usr/upload
tar -zxvf redis-3.0.7.tar.gz
3)编译并安装
cd /usr/local/redis-3.0.7
make
make install PREFIX=/usr/local/redis
2、启动和关闭
1)拷贝并修改配置文件
cp /usr/upload/redis-3.0.7/redis.conf /usr/local/redis/bin
vim /usr/local/redis/bin/redis.conf:
daemonize yes
2)启动
./redis-server redis.conf
3)关闭
./redis-cli -h 127.0.0.1 -p 6379 shutdown
./redis-cli shutdown
4)测试
./redis-cli -h 127.0.0.1 -p 6379
./redis-cli
redis的基本命令:
keys *:查看所有key
expire和ttl:设置和查看key的失效时间
incr和decr:自增和自减
exists:判断key值是否存在
redis的多数据库实例:
1、redis实例中提供了下标是0-15的16个数据库,不能修改下标,可通过select切换
2、清空数据库的命令:
flushdb:清空当前数据库的数据
flushall:清空所有数据库的数据
持久化方案:
1、RDB:默认(数据)
策略:
save 900 1
save 300 10
save 60 10000
优点:不影响性能
缺点:不能保证数据的完整性
实验:
1.删除dump.rdb
2.set str abc
3../redis-cli shutdown--->dump.rdb
2、AOF:(命令)
策略:
# appendfsync always
appendfsync everysec
# appendfsync no
缺点:影响性能
优点:保证数据的完整性
实验:
1.设置appendonly为yes
2.set str1 abc
3.等待1秒观察appendonly.aop
主从复制:
1、过程
a、从往主发送sync命令
b、主往从发送rdb文件
c、主往从发送写命令
2、配置步骤
主:无需配置
从:slaveof 主ip 主port
实验:
1.往主写数据,观察从是否同步
2.关闭主,往从写数据(主死类从只能读)
redis的五种数据类型:
赋值 取值 删除 特点
string set k v get k del k string
hash hset k k-v hget k k hdel k k map
list lpush/rpush k v... lrange k 0 -1 lrem k 2 v list
set sadd k v... smembers k srem k v set
zset zadd k 1 v... zrange k 0 -1 withscores zrem k v sort set
redis集群:
1、redis集群是多少台?
投票容错超过半数:3台 高可用:3台
2、为什么集群中有一个节点挂了,则整个集群都挂类?
redis集群中有16384个槽分给了3个节点,存取数据时:crc16(key)%16384=[0~16383]
3、搭建步骤
1)安装ruby环境
cd /usr/upload
yum install ruby
yum install rubygems
gem install redis-3.0.0.gem
cd /usr/upload/redis-3.0.0/src
ll *.rb
2)拷贝6个节点,并启动
1、删除dump.rdb和appendonly.aof
cd /usr/local/redis/bin
rm -f dump.rdb
rm -f appendonly.aof
2、拷贝6个节点
cd /usr/local
mkdir redis-cluster
cp -r redis redis-cluster/redis-7001
......
3、修改配置文件
vim /usr/local/redis-cluster/redis-7001/bin/redis.conf:
port 7001
cluster-enable yes
... ...
4、创建启动脚本
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
5、使用ruby脚本创建redis集群
cd /usr/upload/redis-3.0.0/src
./redis-trib.rb create --replicas 1 192.168.145.133:7001 192.168.145.133:7002 192.168.145.133:7003 192.168.145.133:7004 192.168.145.133:7005 192.168.145.133:7006
6、测试
./redis-cli -c -p 7001
cluster info
cluster nodes