Redis

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

一、安装和配置

1、安装

下载地址:http://redis.cn/download.html
      安装的时候只需注意下面:
在这里插入图片描述
其他只需下一步即可。

2、配置

  • 绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip

      bind 127.0.0.1

  • 端⼝,默认为6379

      port 6379

  • 是否以守护进程运⾏

如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务。如果以⾮守护进程运⾏,则当前终端被阻塞。设置为yes表示守护进程,设置为no表示⾮守护进程。推荐设置为yes,但是在window中没用,后面我们接收如何安装redis后台服务。
      daemonize yes

  • 数据⽂件

      dbfilename dump.rdb

  • 数据⽂件存储路径

      dir ./

  • ⽇志⽂件

      logfile “./redis-server.log”

  • 数据库,默认有16个

      database 16

  • 主从复制,类似于双机备份,在从里配置,主服务器中不配置。

      slaveof 主服务器ip 主服务器port

二、数据库操作

1、redis服务端与客户端命令

1.1 redis服务端命令
  • 安装后台服务
redis-server --service-install 配置文件名 --service-name 服务名 --loglevel verbose
  • 卸载服务
redis-server --service-uninstall --service-name 服务名
  • 启动服务
redis-server --service-start --server-name 服务名
// 未配置后台服务使用下面命令启动服务
// redis-server 配置文件名
redis-server redis.windows.conf
  • 停止服务
redis-server --service-stop --server-name 服务名
  • 重启服务
redis-server --service-restart --server-name 服务名
1.2 客户端命令
//redis-cli -p 端口号 -h ip地址
redis-cli -h 127.0.0.1 -p 6379 //若是没有指定ip和port 默认为127.0.0.1回环地址,6379端口

在这里插入图片描述

2、string

  • 设置值
set  key  value  EX  seconds  //seconds 为过期时间,没有设置将永久保存
setex key seconds value  //seconds 为过期时间,
mset key1 value1 [key2 value2 ...] //设置多个键值对
append   key  value1  // 向键为key的value 后面追加value1
  • 获取值
get  key  
mset key1  [key2  ...] //获取多个值

在这里插入图片描述

3、hash

hash 存储的格式就像我们的对象一样,一个对象中有多个属性

  • 设置值
hset key field value // 设置单个值
hmset key field1 value1 field2 value2 ... // 设置多个值
  • 获取值
hget  key  
hmget key1  [key2  ...] //获取多个值
hkeys key			获取指定键所有的属性

在这里插入图片描述

4、键命令

flushall		 	//刷新数据库
keys 正则			//查找键 参数支持正则
exists key			 //判断键是否存在 存在返回1 不存在返回0	
type  key			//查看键值得类型
del key,key		//删除键及对应得值
expire key seconds		//设置过期得时间
ttl   key			//查看有效时间

在这里插入图片描述

5、list

lpush key value1 value2		//从a1的左侧插入
rpush key value1 value3		//从key的右侧插入
lrange key start stop		//查询值,可以 负索引
linsert key before或after   //现有元素 新元素   在指定元素的前或后插?新元素
lset key 索引位置   值		//修改索引位置的值 
lrem key  count value		//删除指定元素 count>0	从头往尾移除 count <0从尾往头移除   count=0 全部删除

在这里插入图片描述

5、set 和 zset

// set 无序集合
sadd key member1 member2..	//添加数据
smembers key			//获取数据
srem key members		//删除集合
// zset 有序集合
zadd key score1 member1....		//添加 score 为权重  
zrange key start stop		//获取
zscore key member			//返回成员member的score值
zrem key member1 member2 ...	//删除指定元素
zremrangebyscore key min max	//删除权重在指定范围的元素

三、搭建主从

将redis.widows.conf 复制两份,一份命名为master.conf ,一份命名为slave.conf。修改修改两个配置文件的配置

master.conf 只需修改port 就可以了。其实大多的是不需要这个文件,只需将redis.windows.conf 作为主服务器配置就可以了,我这里只是不想动我的redis.windows.conf 而已。
在这里插入图片描述
slave.conf 需要修改端口号,而且还要指定主服务器是哪一个
修改端口
在这里插入图片描述
指定主服务器
在这里插入图片描述
之后启动主从服务器,客户端连接测试即可。

四、搭建集群

  • 新建文件夹clu

  • 进入clu 新建 6 个 Redis 的文件夹和相应的配置文件(以端口命名文件夹)。每个文件夹中新建文件redis.conf

# 修改端口号,和文件夹的名字相同
9000/redis.conf 
	port 9000
	bind 127.0.0.1
	pidfile 9000.pid
	cluster-enabled yes
	cluster-config-file 9000_node.conf
	cluster-node-timeout 15000
	appendonly yes
9001/redis.conf 
	port 9001
	bind 127.0.0.1
	pidfile 9001.pid
	cluster-enabled yes
	cluster-config-file 9001_node.conf
	cluster-node-timeout 15000
	appendonly yes
.
.
.

用 Redis 命令(redis-server)安装 6 个 Redis 服务,并启动

redis-server --service-install redis.conf --service-name redis9000 --loglevel verbose
redis-server --service-start --service-name redis9000

redis-server --service-install redis.conf --service-name redis9001 --loglevel verbose
redis-server --service-start --service-name redis9001

redis-server --service-install redis.conf --service-name redis9002 --loglevel verbose
redis-server --service-start --service-name redis9002

redis-server --service-install redis.conf --service-name redis9002 --loglevel verbose
redis-server --service-start --service-name redis9002

redis-server --service-install redis.conf --service-name redis9003 --loglevel verbose
redis-server --service-start --service-name redis9003

redis-server --service-install redis.conf --service-name redis9004 --loglevel verbose
redis-server --service-start --service-name redis9004

redis-server --service-install redis.conf --service-name redis9005 --loglevel verbose
redis-server --service-start --service-name redis9005

如果上面你的安装服务无法启动你只好进入每个文件夹中启动redis服务了

redis-server redis.conf
  • 安装 ruby 并且 用 Ruby 命令(gem)安装 Redis 的相关组件。

请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。ruby 百度网盘下载路径:https://pan.baidu.com/s/1EvoOdCcSHIGCLQqHgdX7LQ  提取密码:lyea

// 查看gem 版本
gem -v
//查看镜像源:
gem sources -l

更新镜像源:

// 更新gem 的镜像源
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ 
// 安装redis相关文件
gem install redis

在这里插入图片描述

  • 用 redis-trib.rb 创建集群。
redis-trib.rb create --replicas 1 127.0.0.1:9000 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005
// 查看集群内所有的节点以及其关系
redis-cli -c -h 127.0.0.1 -p 9000 cluster nodes

在这里插入图片描述

//客户端登录集群:
 redis-cli -c -p 9003 -h 127.0.0.1

在这里插入图片描述

  • 集群特有的命令有(如果没有登录,那么,每次执行集群的命令时候,都要输入前面的登录指令):
cluster info   // 集群总揽
cluster nodes   // 列出集群当前已知的所有节点(node),以及这些节点的相关信息

cluster meet <ip> <port>   // 将指定的节点(ip:port)添加到集群中,让它成为集群的一员
cluster forget <node_id>   // 从集群中移除 node_id 节点
cluster replicate <node_id>   // 将当前节点设置为 node_id 节点的从节点
cluster saveconfig   // 将节点的配置文件保存到硬盘里面

cluster addslots <slot> [slot ...]   // 将一个或多个槽(slot)指派(assign)给当前节点
cluster delslots <slot> [slot ...]   // 移除当前节点的一个或多个槽
cluster flushslots   // 移除当前节点的所有槽(删除集群内的最后一个主节点时,可用到)
cluster setslot <slot> node <node_id>   // 将槽 slot 指派给 node_id 节点。如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,再进行指派
cluster setslot <slot> migrating <node_id>   // 将本节点的槽 slot 迁移到 node_id 节点中去
cluster setslot <slot> importing <node_id>   // 从 node_id 节点中导入槽 slot 到本节点来
cluster setslot <slot> stable   // 取消对槽 slot 的导入(import)或者迁移(migrate)

cluster keyslot <key> 计算键 key 应该被放置在哪个槽上
cluster countkeysinslot <slot> 返回槽 slot 目前包含的键值对数量
cluster getkeysinslot <slot> <count> 返回 count 个 slot 槽中的键
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值