redis安装及配置

*redis安装
wget http://download.redis.io/releases/redis-5.0.3.tar.gz --下载压缩包
tar zxvf redis-5.0.3.tar.gz  --解压
cd redis-5.0.3/
make --编译
yum -y install gcc-c++ automake autoconf --安装gcc 
如果还报错的话运行:make MALLOC=libc
mkdir -p /usr/local/redis --创建一个redis目录
make PREFIX=/usr/local/redis install  --在redis目录安装
cd /usr/local/redis
cd bin/

启动redis: ./redis-server

前台启动redis改为后台启动redis(daemonize改为yes),添加端口号,关闭保护机制(protected-mode),打开密码( requirepass),默认为16个库可以进行添加
cd ~
cd  redis-5.0.3/
cp redis.conf /usr/local/redis/bin/ --将redis.conf拷贝一份
cd /usr/local/redis/bin
vim redis.conf  --进行编辑
./redis-server redis.conf ---启动


测试是否成功
./redis-cli ---连接客户端
ping

ps -ef|grep redis --停止redis
kill -9 27523  --杀死进程
./redis-server redis.conf  --重启redis
                

*redis配置
cd /usr/local/redis/bin
./redis-cli -h 192.168.77.120 --可以指定自己的IP
./redis-cli -p 6379 -a root --指定redis的端口和密码
select 1 --选择数据库,下标从0开始,默认为0


(1.)string字符串 set <key,value>
set name 婷婷  --添加一条
get name 获取值  --获取一条数据
set mset sex 男 ,address 陕西  --- 创建多条数据
get mset name sex addresss     ----获取多条数据


(2.)哈希 hash <key(redis中的value),key,value>
hset name 张三 --添加一条数据
hget name --获取一条数据

hmset sex 男  address 陕西 ---添加多条数据·
hmget name sex address  ---获取多条数据

hgetall user ---将redis key下的所有hash数据都打印出来

hdel user name,sex --删除指定数据

(3.)列表 list
--左添加
lpush student zhangsan lisi   --可以添加·多条数据  l指left
lrange student  0 2 --查看数据 下标从0开始 l指list

--右添加
rpush student wangwu zhaoliu
lrange student  0 3 

llen student --查看当前有多少条数据

lrem student 1 lisi --删除lisi这条数据 ,如果有多个lisi可以根据个数删除(删除时从左往右删除) 


(4.)集合 set(无序)
sadd letters aaa bbb ccc ddd eee --查询添加多条数据
smembers letters --查询数据  它是无序的,但是它的内部是有序的
scard letters --查看总条数
srem letters aaa ccc --删除


(5)有序集合 sorted set
zadd score 7 zhangsan 3 lisi 6 wangwu 10 zhaoliu 1 tianqi --添加
zrange score 0 6 --查数据
zcard score --查总个数
zrem score zhangsan lisi --删除
,





*Redis通用命令
--层级关系目录
优点:
    (1.)可读性高
    (2.)方便使用,方便归类
 set cart:user01:item01 apple
 get cart:user01:item01
 
 ---设置失效时间
 set code test ex 10 --设置失效时间
 ttl code 
 -1:永不失效
 -2:失效
 
 set code test  ---没有设置失效时是永久失效
 expire code 10  --给已存在的值设置失效时间
 set code test px 10000 nx 
 nx:key不存在的时候才能设置成功,如果存在就会设置失败
 xx:存在的时候设置成功,不存在的时候设置失败
 
 
*Redis持久化方案
./redis-cli -p 6379 -a root --指定redis的端口和密码
ps -ef|grep redis --停止redis
kill -9 27523  --杀死进程
./redis-server redis.conf  --重启redis


(1.)bgsave
   优点:可以存储到磁盘上
   缺点:没存储一条数据都需要夹bgsave,比较麻烦
   
   
(2.)在配置文件中配置 rdb方案
vime redis.conf
修改里面的save
列如:save 10 1 它的意思是10秒后自动存储一个数据,不论修改或删除

优点:默认是开启的,会根据配置自动获取数据到rdb里面
缺点:可能丢失数据

(3.) appendfilename.aof
会使默认的dum.rdb失效
vime redis.conf
 appendonly no改为yes
优点:可以时时将命令记录到aof文件中,重启时会从aof中读取命令
 缺点:随着数据越存越多,启动时会出现卡顿现象
 
如果允许部分数据丢失的话 也可以将rdb和of结合起来21··
*Redis主从复制

(1.)读写分离

mkdir -p /opt/redis/data  --创建数据
mkdir -p /opt/redis/log -- 日志
mkdir -p /opt/redis/conf --配置

cd redis-5.0.3/ ---
cp redis.conf /opt/redis/conf --拷贝
cd /opt/redis/conf  
mv redis.conf redis-common.conf ---修改名字
vim redis-common.conf   --修改配置
#bind 127.0.0.1
protected-mode no
#port 6379
daemonize yes  --后台启动
#pidfile /var/run/redis_6379.pid  --进程文件
#dbfilename dump.rdb
dir /opt/redis/data
masterauth root
requirepass root --访问密码

touch redis-6379.conf --新建每个进程需要的配置文件
vim redis-6379.conf  --修改配置
三个
include /opt/redis/conf/redis-common.conf
##进程编号记录文件
pidfile /var/run/redis-6380.pid
##进程端口号
port 6380
##日志记录文件
logfile "/opt/redis/log/redis-6380.log"
##数据记录文件
dbfilename dump-6380.rdb
##追加文件名称
appendfilename "appendonly-6380.aof"
##下面的文件无需在6379里配置
##备份服务器从属于6379推荐配置配局域网IP
slaveof 192.168.77.
120 6379



运行redis主从
cd /usr/local/redis/bin
./redis-server /opt/redis/conf/redis-6379.conf
ps -ef|grep redis --有进程的话杀死
kill -9 ...
 
 
启动三个
./redis-cli -p 6379 -a root

./redis-server redis.conf

info replication --查看主从状态


(2.)哨兵配置,主备切换

cd redis-5.0.3/ 
cp sentinel.conf  /opt/redis/conf/ --拷贝哨兵
cd /opt/redis/conf
mv sentinel.conf sentinel-common.conf ---修改名字
vim sentinel-common.conf  --进行配置

#port 26379
daemonize yes --后台启动
#pidfile /var/run/redis-sentinel.pid --进程文件
#logfile "" --日志文件
sentinel monitor mymaster 192.168.77.120  6379 2 哨兵 监控 主从环境 主从复用环境  主服务器 
sentinel auth-pass mymaster root --哨兵密码

touch sentinel-26379.conf --创建哨兵文件夹
vim sentinel-26379.conf  --修改私有配置文件


#引用公共配置
include /opt/redis/conf/sentinel-common.conf
#进程端口号
port 26379
#进程编号记录文件
pidfile /var/run/sentinel-26379.pid
#日志记录文件(为了方便查看文件,先注释掉,搭好环境后再打开)
logfile "/opt/redis/log/sentinel-26379.log"

启动:
cd /usr/local/redis/bin/
./redis-sentinel  /opt/redis/conf/sentinel-26379.conf  --启动哨兵

ps -ef|grep redis
ps -ef|grep sentinel --查看哨兵是否启动成功

 tail -f /opt/redis/log/sentinel-26379.log --查看日志 

kill -9 46873 杀死主节点



(3.)搭建redis集群

总结:

​ (1.) 单节点版本的redis:

​ 优点:部署比较简单、容易

​ 缺点:读的压力比较大,没有一定的高可用

​ (2.)主从复用,读写分离,读写分离的环境

​ 优点:将读的压力分散出去,分到从服务器上去,主服务器只负责读和写,从服 务器只负责读,分散了读的压力;

​ 提高了一定的可用性,比如从服务器宕机了,其它的从服务器和中服务都能工作

​ 缺点:如果主服务器宕机,数据可能是一个过期的数据·,最新的数据没办法写入

​ (3.)搭入哨兵,主备切换

​ 优点:哨兵可以监控主备复用的环境,检测主服务器有没有挂机,如果挂机会重新选举,选举

​ 一个从服务器 变成主服务器,如果主服务器30s没连上的话执行这一步

​ 更加地提高了可用性,有了哨兵之后可以重新选举主服务器,重新进行读写的操作

​ 缺点:写的压力没有分散,容易造成资源浪费

​ (4.)搭建redis集群 一个集群有13864个槽

​ 优点:

​ 一个集群

​ 优点:基本上解决了之前的问题

​ 缺点:成本高; 排错能力交叉

        优点:基本上解决了之前的问题

​ 缺点:成本高; 排错能力较差

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值