Redis整合-快速入门

Redis简介

        Redis是一种非关系型数据库(NoSQL),不支持SQL语法,有自己的api和语法,是基于内存的高性能的key-value型数据库,支持数据持久化,将内存中的数据保存在磁盘中,重启的时候进行加载,支持主从模式。

Redis持久化

有两种持久化方式,分别是RDB持久化和AOF持久化:

RDB持久化:

把当前内存中的数据集定时快照写入磁盘

优点:1.容易进行备份和灾难恢复(dump.rdb文件);
           2.redis主进程fork出一个子进程来完成持久化工作;
           3.恢复大量数据集比AOF快。

缺点:1.定时做备份,如果redis意外down的话,还没来得及写入磁盘导致数据丢失;
           2.要fork一个子进程,没法做到实时持久化。

AOF持久化:

以日志的形式记录每次写入、删除操作(三种同步策略:每秒同步、每修改同步和不同步)

优点:1.更好的保护数据不被丢失;
           2.在写入过程中即使出现死机现象,也不会破坏日志文件中已经存在的内容。

缺点:1.恢复大量数据集比RDB慢;
           2.AOF的运行效率上往往会慢于RDB。

Redis数据结构操作命令

Redis是以key-value的形式进行数据存储的,值支持五种数据类型:string、hash、list、set和zset。

string类型

        字符串类型是Redis中最为基础的数据类型,该类型可以支持任何格式的数据,包括JPEG图像数据或Json对象描述信息等,最多可以容纳的数据长度是512M。

设置键值:(如果设置的键不存在则为添加,如果设置的键已经存在则修改)

set key value 

设置键值及过期时间,以秒为单位:

setex key seconds value

设置多个键值:

mset key1 value1 key2 value2 ...

追加值:

append key value 

根据键获取值:(如果不存在则返回nil)

get key

根据多个键获取多个值:

mget key1 key2 ...

hash类型

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

设置单个属性

hset key field value

设置多个属性

hmset key field1 value1 field2 value2 ...

获取指定键所有的属性

hkey2 key

获取一个属性的值

hget key field

获取多个属性的值

hmget key field1 field2 ...

获取所有属性的值

hvals key

获取一个hash有多少个属性

hlen key

删除属性,属性对应的值会被一起删除

hdel key field1 field2 ...

list类型

        列表的元素类型为string,按照插入顺序进行排序。

在左侧插入数据

lpush key value2 value ...

在右侧插入数据

rpush key value1 value2 ...

在指定元素的前或后插入新元素

linsert key before 或 after 现有元素 新元素

获取列表里指定范围内的元素

lrange key start stop
//start、stop为元素的下标索引
//索引从左侧开始,第一个元素为0
//索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素

设置指定索引位置的元素值

lset key index value
//索引从左侧开始,第一个元素为0
//索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素

删除指定元素

lrem key count value
//count>0:从头往尾移除前count次出现的值为value
//count<0:从尾往头移除前count次出现的值为value
//count=0:移除所有出现的值为value

set类型

        set类型为无序集合,元素为string类型,元素具有唯一性,不重复,对于集合没有修改操作。

增加元素

sadd key member1 member2 ...

获取所有的元素

smembers key

删除指定元素

srem key value

zset类型

        zset类型(sorted set)为有序集合,元素为string类型,元素不重复,每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序,并且没有修改的操作。

增加元素

zadd key score1 member1 score2 member2 ...

获取指定范围内的元素

zrange key start stop
//start、stop为元素的下标索引(已自动根据权重(score)排好序)
//索引从左侧开始,第一个元素为0
//索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
//

获取score值在min和max之间的元素

zrangebyscore key min max

获取某个成员的score值

zscore key member

删除指定元素

zrem key member1 member2 ...

删除权重在指定范围内的元素

zremrangebyscore key min max

连接命令

连接redis数据库

redis-cli -h(ip地址) -p(端口号) (--raw)
//--raw,解决中文乱码

键命令

查找键,参数支持正则表达式

key2 pattern
//keys *,查看所有键

判断键是否存在

exists key1
//如果存在返回1,不存在返回0

查看键对应的value的类型,为redis支持的五种类型之一

type key

删除键及对应的值

del key1 key2 ...

设置过期时间,以秒为单位

expire key seconds 
//如果没有指定过期时间就一直存在,直到del删除

查看有效时间,以秒为单位

ttl key

Redis搭建主从

        通过搭建主从模式来实现读写分离,master用来写数据,slave用来读数据(经统计:网站的读写比率是10:1),一个master可以拥有多个slave,一个slave一可以拥有多个slave。

Redis搭建集群

        集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。集群配置是用于提高可用性和可缩放性,当请求到来首先由负载均衡服务器处理,把请求转发到另外的一台服务器上。
        Redis集群会把数据存在一个master节点,然后在这个 master 和其对应的salve之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve节点,来充当master,必须要大于等于3个主节点,否则无法创建集群,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值