mybatis的使用及
一、什么场景?具体哪儿用了?为什么用?【重点】
场景:①数据量小 ②查询频繁
具体:首页广告
为什么用:因为mysql走的是硬盘顶不住高并发;redis走的是内存;
二、什么redis?
redis是c语言编写的高性能(读110000次/s,写81000次/s)的k-v形式的数据库,数据存储在内存中
三、redis的安装和启动
1、安装c语言环境
yum install gcc-c++
2、上传并解压
cd /usr/upload
tar -zxvf redis-3.0.0.tar.gz
3、编译并安装
cd /usr/upload/redis-3.0.0
make
make install PREFIX=/usr/local/redis
4、拷贝并修改配置文件
cp /usr/upload/redis-3.0.0/redis.conf /usr/local/redis/bin
vim /usr/local/redis/bin/redis.conf:
daemonize yes
5、启动和关闭
启动:
cd /usr/local/redis/bin
./redis-server redis.conf
测试:
cd /usr/local/redis/bin
./redis-cli [-h 127.0.0.1 -p 6379]
关闭:
./redis-cli [-h 127.0.0.1 -p 6379] shutdown
四、基本命令
keys *:查看所有key值
exists:判断key值是否存在
expire和ttl:设置和查看key的失效时间
incr和decr:自增和自减
五、redis的多数据库实例
1、redis实例中提供了下标是0-15的16个数据库,不能修改下标,可通过select切换
2、清空数据库
flushdb:清空当前数据库的数据
flushall:清空所有数据库的数据
六、持久化【重点】
1、RDB:默认[数据]
策略:
save 900 1
save 300 10
save 60 10000
缺点:不能保证数据的完整性
优点:不影响性能
实验:
①删除dump.rdb文件
②set str sb
③./redis-cli shutdown---->数据持久化
2、AOF:[命令]
策略:
# appendfsync always
appendfsync everysec
# appendfsync no
优点:保证数据的完整性
缺点:影响性能
实验:
①设置appendonly为yes
②set str1 sb
③等待一秒---->数据持久化
七、主从复制
1、过程
①从往主发送sync命令
②主往从发送rdb文件
③主往从发送命令
2、配置步骤
主:无须配置
从:slaveof masterip masterport
3、测试
①往主写数据,观察从是否同步
②关闭主,往从写数据(主死了从只能读)
八、redis集群
1、为什么节点之间要相互ping-pong?
投票容错
2、为什么要投票容错?
集群中有一个节点fail整个集群都会fail
3、为什么集群中有一个节点fail整个集群都会fail?为什么client连哪一台都一样?
redis集群中有16384个槽,分给了3个节点,存取数据时:crc16(key)%16384=0~16383
4、redis集群是多少台?
投票容错超过半数:3台 高可用:3台
5、搭建步骤
①删除redis中的持久化文件
cd /usr/local/redis/bin
rm -f dump.rdb
rm -f appendonly.aof
②开启集群
vim /usr/local/redis/bin/redis.conf:
cluster-enabled yes
③拷贝6个节点
cd /usr/local
mkdir redis-cluster
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
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7004
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7005
cp -r /usr/local/redis /usr/local/redis-cluster/redis-7006
④修改端口号
vim /usr/local/redis-cluster/redis-7001/bin/redis.conf:
port 7001
vim /usr/local/redis-cluster/redis-7002/bin/redis.conf:
port 7002
vim /usr/local/redis-cluster/redis-7003/bin/redis.conf:
port 7003
vim /usr/local/redis-cluster/redis-7004/bin/redis.conf:
port 7004
vim /usr/local/redis-cluster/redis-7005/bin/redis.conf:
port 7005
vim /usr/local/redis-cluster/redis-7006/bin/redis.conf:
port 7006
⑤编写启动集群的脚本
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
chmod 755 start-all.sh
./start-all.sh
ps -ef | grep redis
⑥安装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
⑦使用ruby脚本搭建redis集群
cd /usr/upload/redis-3.0.0/src
./redis-trib.rb create --replicas 1 192.168.61.131:7001 192.168.61.131:7002 192.168.61.131:7003 192.168.61.131:7004 192.168.61.131:7005 192.168.61.131:7006
⑧测试
1)测试存储数据
./redis-cli -c -p 7001
2)测试是否高可用
cluster nodes
关闭7001
cluster nodes
九、redis的五种数据类型
赋值 取值 删除 特点
string set k v get k del String
hash hset k kv hget k k hdel k k Map
list lpush/rpush k v... lrange k 0 -1 lrem k -2 v LinkedList
set sadd k v... smembers k srem k v Set
zset zadd k 2 v... zrange k 0 -1 with scores zrem k v Sort Set

更多推荐



所有评论(0)