【Redis入门视频课程-笔记】(二)

(四)Sorted-­Sets类型

概念

Sorted-Sets类似Sets,也称为Zset,是字符串的集合,都不允许重复的成员出现在一个Set中。区别在于Sorted-Sets的每个成员都有一个分数,成员的排序使通过分数来进行的。Sorted-Sets的成员必须时唯一的,但分数可重复。

操作

  • zadd/zrange/zcard/zrank/zcount/zrem/zscore/zincrby
  1. zadd :添加/创建Sorted-Sets
  2. zrange:获取/查看元素(分数可看可不看)zrange myzset 0 ­-1 withscores
  3. zcard:获取myzset键中成员的数量
  4. zrank:获取指定元素,在集合中的索引
  5. zcount:获取符合指定条件的成员数量,分数满足表达式1 <= score <= 2的成员的数量 zcount myzset 1 2
  6. zrem:删除元素
  7. zscore:获取指定元素的分数
  8. zincrby:将成员three的分数增加2,并返回该成员更新后的分数
  • zrangebyscore/zremrangebyscore/zremrangebyrank
  1. zrangebyscore:获取符合条件的元素,zrangebyscore myzset -­inf +inf withscores limit 2 3, -­inf +inf 表示分数的范围;limit后面的参数2指从索引值为2的开始,3表示找三个符合条件的结果;
  2. zremrangebyscore:删除指定分数的元素
  3. zremrangebyrank:根据索引删除元素
  • zrevrange/zrevrangebyscore/zrevrank
  1. zrevrange:按索引反向获取元素
  2. zrevrangebyscore:按索引从高到低的方式根据分数获取成员,分数满足表达式3 >= score >= 0的成员
  3. zrevrank:获取成员one在集合中的索引,从高到低的排序(没有rev,默认是从小到大)

应用

可用于做类似游戏的积分排行榜
Sorted­Sets类型还可用于构建索引数据

(五)Hash类型

概念

可以将Redis中的Hash类型看成具有String Key和String Value的map容器。所以该类型非常适合于存储值对象
的信息。

操作

  • hset/hget/hlen/hexists/hdel/hsetnx
  1. hset:创建/添加hash“对象”的属性键值对
  2. hget:获取属性对应的键值
  3. hlen:获取对象属性的个数
  4. hexists:判断对象是否有某属性
  5. hdel:删除某属性
  6. hsetnx:不存在时才生效
  • hincrby
  1. hincrby:对属性值进行正/负增长
  • hmset/hmget/hgetall/hkeys/hvals
  1. hmset:一次设置多个键值对
  2. hmget:一次获取多个
  3. hgetall:获取全量
  4. hkeys:获取键中所有字段的名字
  5. hvals:获取键中所有字段的值

总结:每个类型对应的最简单的添加获取命令:
String:set/get mykey(名字) keyname(值)
List(有序):lpush mylist(名字) value1(值) value2 … || lrange mylist(名字) 0 -1(范围)
Set(无序):sadd myset(名字) value1(值) value2 … || smembers myset(名字)
Sorted-Sets:zadd myzet(名字) 10(分值) keyname1(值) 20(分值) keyname2(值) … || zrange myset(名字) 0 -1(范围)
Hash:hmset myhash(名字) name1 value2(键值对) name2 value2 || 获取一个或多个属性对应的值 hget/hmget(myhash(名字) ; 获取全量的键值对 hgethall myhash(名字);获取全量的字段名或字段值 hkeys/hvals myhash(名字)

五、 Key操作命令

操作

上面的对象名,作为key,对此进行操作

  • keys/del/exists/move/rename/renamenx
  1. keys:查看key keys *"*"符合pattner表达式
  2. del:删除
  3. exists:判断是否已存在
  4. move:将key在数据库间移动
  5. rename:重命名
  6. renamenx:只有当目标名不存在时才可以更名
  • ttl/persist/expire/expireat
  1. ttl:查看剩余的有效时间
  2. persist:将设置过有效时间的数据持久化
  3. expire:设置有效时间
  4. expireat:设置??从开始至某时间点隔了多少时间
  • type/randomkey
  1. type:查看数据类型
  2. randomkey:返回数据库中的任意键
  3. flushdb:清空数据库

六、 事务

概念

1、 MULTI/EXEC/DISCARD/WATCH 实现事务的基本命令
2、 事务中的命令都会被串行化的顺序执行,事务执行期间,redis只为一个客户端服务(保证原子性
3、 和关系型数据库中的事务相比,redis事务一条事务执行失败,后面的命令会继续执行
4、 用multi开启一个任务,类似于关系型数据的begin transaction。在此之后执行的命令都是该事务的操作。用exec/discard命令提交/回滚该事务内的所有操作,等同于关系型数据库的commit/rollback语句
5、 发

命令

  • multi
  • exec
  • discard

七、 主从复制Replication

Master-Slave主从,数据提交给主服务器,从服务器跟着主服务器实时地去更新数据

概述

1、 同一个Master可以同步多个Slaves
2、 Slave同样可以接收其他服务器的连接和同步请求,可以有效分载Master的同步压力,故可以及那关Redis的Replication架构视为图结构
3、 Master 服务器是以非阻塞的方式为Slaves提供服务,同步期间,客户端仍可以提交查询或修改请求
4、 Slaver服务器同样是以非阻塞的方式完成数据同步,在同步期间,有客户端提交查询,redis则返回同步之前的数据
5、Slave 服务器提供制度操作的服务,用以分载Master的读操作压力,但写服务只能由Master来完成。(系统的伸缩性得到了提高
6、 Master可以将数据保存操作交给Salve完成,从而避免了在Master中要由独立的进程来完成此操作

配置

在从服务器上输入slaveof 主服务器地址 服务的端口号将从服务器连接到主服务器。此时主服务器不能设置密码,否则连接不到。这是临时连接,若服务器重启配置失效
若要永久有效,需在配置文件中进行配置

  • 查询本地的ip地址
  • 配置主服务器的bind,改为主机ip,而非127.0.0.1;端口号可改可不改,不改就是默认的6379
  • 从服务器同样配置bind;修改端口号,若同台设备,端口号要不同;配置slaveof master的ip 端口号
    slaveof&replicaof区别是新老版本,配置文件中没找到slaveof,只有replicaof,之前没找到,用slaveof进行配置,同样可以生效
  • 配置完成,重启服务器,info replication查看主从身份;master写入后,slave可以实时读取数据,slave只能读,禁写。

redis主从配置

上述是不设置密码的配置方式,设置密码如下

  • master通过配置requirepass 密码进行密码的设置
    设置密码后,再访问服务器,需要输入密码auth 密码之后进行读写操作
  • 此时,slave设置masterauth 密码,将master的密码写入配置文件

其他

关系型数据库的事务

关系型数据库的事务是指一组sql语句组成的数据库逻辑处理单元,在这组的sql操作中,要么全部执行成功,要么全部执行失败。
事务的特性:原子性、一致性、隔离性、持久性

关系型数据的事务的一个很详细的帖子

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值