部署-->Redis配置

redis安装

step1:下载

wget <http://download.redis.io/releases/redis-4.0.9.tar.gz>

step2:解压

tar xzf redis-4.0.9.tar.gz

step3:移动文件,放到usr/local⽬录下

sudo mv ./redis-4.0.9 /usr/local/redis/

step4:进⼊redis⽬录

cd /usr/local/redis/

step5:生成编译

sudo make

step6:测试,这段运⾏时间会较⻓

sudo make test

step7:安装,将redis的命令安装到/usr/local/bin/⽬录

sudo make install

step8:安装完成后,我们进入目录/usr/local/bin中查看

cd /usr/local/bin
ls -all

step9:配置⽂件,移动到/etc/⽬录下

配置⽂件⽬录为/usr/local/redis/redis.conf
sudo cp /usr/local/redis/redis.conf /etc/redis/如果etc目录下没有redis文件需要手动创建

启动数据库

启动服务端

redis-server

启动客户端

redis-cli
select index 进入指定几号库

终结服务端

ps aux | grep redis    先查看redis-server的pid
sudo kill -9 pid

redis数据类型与数据库语法

string

字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制的,这 便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

保存设置键值
set name xiaoming   设置name的值为xiaoming
保存设置多个键值
mset name xiaoming age 18 gender boy    设置name的值为xiaoming,age的值为18......
设置键值时效
设置存在时效的键值
    setex name 20 xiaoming  设置name的值为xiaoming,且在20s后清除
查询时效
    ttl name    查询name的时效
精准查找
get name    查询指定的name的值
mget name age gender ......    查询多个指定的值
范围查找
keys *  查找数据库中所有的keys
keys 'a*'    查询数据库中以开头的 
keys '\*a\*'    查询数据库中包含a的
追加字符
append name ming    给指定name的值追加指定的字符
删除
del name    删除指定的key
查询是否存在
exists name    查询键值是否存在  0 不存在    1 存在

list

列表的元素类型为string
按照插⼊顺序排序

设置和增加
lpush name xiaoming xiaohua daliu    从左边设置或者追加name为list 且内部的值为xiaoming xiaohua......
rpush 从右边开始设置或追加
查找
lrange name 0 -1    查找指定list 内的元素  以0开始 以-1的位置结束
插入
linsert name before/after xiaoming liudana    从名字为name的list中的xiaoming的前方或者后方插入指定的值为liudana    before从...之前    after从...之后
修改
lset name 1 liuying    修改name这个list中下标为1的值为liuying
删除
lrem name 0 xiaoming    删除name这个list中所有为xiaoming的值 0删除所有,2删除两次,-1从后往前删除一次

hash

hash⽤于存储对象,对象的结构为属性、值
值的类型为string

设置对象以及键值
hset stu1 name xiaoming    设置stu1的属性name的值为xiaoming
hset stu1 name xiaoming age 18 gender boy    设置stu1的属性name的值为xiaoming,age的值为    18,gender为boy
获取
het stu1 age    得到stu1对象中属性age的值
hmset stu1 age name gender 得到stu1对象中多个属性
hkeys stu1    得到stu1中所有的属性名
删除指定属性
hdel stu1 age    删除stu1中的age属性

set

⽆序集合
元素为string类型
元素具有唯⼀性,不重复
说明:对于集合没有修改操作

设置
sadd stu1 xiaoming liuying    设置一个集合为stu1,值为xiaoming liuying
查询
smembers key    查询集合内所有的值
删除
srem sut1 v1 v2    删除指定set 中的value

zset

sorted set,有序集合
元素为string类型
元素具有唯⼀性,不重复
每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
说明:没有修改操作

设置
zadd info 3 san 4 si 4 xiaosi    设置一个info为zset 权重3的为san,权重4的为si 权重4的为xiaosi
查询
zrange info 0 -1    查询指定zset 的内容 查询范围从0开始到最后一个结束
zrangebyscore info min max    查询指定的zset内容  按照权重的范围查找,min max为范围
zscore key value     查找指定的zset中指定值的权重
删除
zrem info 权重    删除zset中指定权重的所有的值

主从

⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构
master用来写数据,slave用来读数据,经统计:网站的读写比率是10:1
通过主从配置可以实现读写分离

设置

设置主
1.ifconfig查看当前ip地址
2.进入配置文件夹 cd /etc/redis/
3.修改etc/redis/redis.conf文件
打开sudo vi redis.conf 
找到bing修改为bind 192.168.26.128
4.重启redis服务
关闭服务器sudo service redis stop 
以指定配置文件开启服务器redis-server /etc/redis/redis.conf
设置从
**1.**复制etc/redis/redis.conf文件, sudo cp /etc/redis/redis.conf  /etc/redis/slave1,2,3,4,5.conf
**2.**修改复制后的文件slave1,2,3,4,5.conf
修改和主服务器使用一个ip, bind 192.168.26.128
在REPLICATION行下添加主服务器的信息, slaveof 192.168.26.128 6379
修改port,port 6380......<u>***注意!***端口号不能和其他的主从服务器相同</u>

开启

开启主服务
redis-server /etc/redis/redis.conf
开启从服务
redis-server /etc/redis/selave12,3,4,5.conf

进入客户端

主客户端(主修改)
redis-cli -h 192.168.42.77 -p 6379
从客户端(只能获取)
redis-cli -h 192.168.42.77 -p 6380
redis-cli -h 192.168.42.77 -p 6381

集群(未完善)

集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。

设置第一台机器

172.16.179.130为当前ubuntu机器的ip
在172.16.179.130上进⼊Desktop⽬录,创建conf⽬录
在conf⽬录下创建⽂件7000.conf,编辑内容如下

port 7000
bind 172.16.179.130
daemonize yes
pidfile 7000.pid
cluster-enabled yes
cluster-config-file 7000_node.conf
cluster-node-timeout 15000
appendonly yes

在conf⽬录下创建⽂件7001.conf,编辑内容如下

port 7001
bind 172.16.179.130
daemonize yes
pidfile 7001.pid
cluster-enabled yes
cluster-config-file 7001_node.conf
cluster-node-timeout 15000
appendonly yes

在conf⽬录下创建⽂件7002.conf,编辑内容如下

port 7002
bind 172.16.179.130
daemonize yes
pidfile 7002.pid
cluster-enabled yes
cluster-config-file 7002_node.conf
cluster-node-timeout 15000
appendonly yes

总结:三个⽂件的配置区别在port、pidfile、cluster-config-file三项
使⽤配置⽂件启动redis服务

redis-server 7000.conf
redis-server 7001.conf
redis-server 7002.conf

设置第二台机器

172.16.179.131为当前ubuntu机器的ip
在172.16.179.131上进⼊Desktop⽬录,创建conf⽬录
在conf⽬录下创建⽂件7003.conf,编辑内容如下

port 7003
bind 172.16.179.131
daemonize yes
pidfile 7003.pid
cluster-enabled yes
cluster-config-file 7003_node.conf
cluster-node-timeout 15000
appendonly yes

在conf⽬录下创建⽂件7004.conf,编辑内容如下

port 7004
bind 172.16.179.131
daemonize yes
pidfile 7004.pid
cluster-enabled yes
cluster-config-file 7004_node.conf
cluster-node-timeout 15000
appendonly yes

在conf⽬录下创建⽂件7005.conf,编辑内容如下

port 7005
bind 172.16.179.131
daemonize yes
pidfile 7005.pid
cluster-enabled yes
cluster-config-file 7005_node.conf
cluster-node-timeout 15000
appendonly yes

总结:三个⽂件的配置区别在port、pidfile、cluster-config-file三项
使⽤配置⽂件启动redis服务

redis-server 7003.conf
redis-server 7004.conf
redis-server 7005.conf

创建集群

redis的安装包中包含了redis-trib.rb,⽤于创建集群

接下来的操作在172.16.179.130机器上进⾏

将命令复制,这样可以在任何⽬录下调⽤此命令

sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/

安装ruby环境,因为redis-trib.rb是⽤ruby开发的

sudo apt-get install ruby

运⾏如下命令创建集群

redis-trib.rb create --replicas 1 172.16.179.130:7000 172.16.179.130:7001 172.16.179.130:7002 172.16.179.131:7003 172.16.179.131:7004 172.16.179.131:7005

数据验证

根据上图可以看出,当前搭建的主服务器为7000、7001、7003,对应的从服务器是7004、7005、7002

在172.16.179.131机器上连接7002,加参数-c表示连接到集群

redis-cli -h 172.16.179.131 -c -p 7002

写⼊数据

set name itheima

⾃动跳到了7003服务器,并写⼊数据成功

在7003可以获取数据,如果写入数据又重定向到7000(负载均衡)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容