Redis

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

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

数据类型

Redis键(key)命令用于管理redis的键

字符串数据类型(String)的相关命令用于管理redis字符串的值

— > command key_name

Redis hash是一个string类型的field和value的映射表,hash适合用于存储对象

— > command hash_name field_name value

列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部或者尾部

—> command lsit_name value

Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
sadd命令:sadd key member

有序集合(sorted set)
Redis有序集合和集合一样也是String类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
zadd命令:zadd key score member

Redis HyperLogLog

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。
· 基数:比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

Redis HyperLogLog 命令

命令描述
PFADD key element[element…]添加指定元素到HyperLogLog中
PFCOUNT key[key]返回给定的HyperLogLog的基数估算值
PFMERGE destkey sourcekey[sourcekey…]将多个HyperLogLog合并为一个HyperLogLog

Redis发布订阅

Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
实例:
创建订阅频道:redisChat

—> SUBSCRIBE redisChat

其他redis客户端在同一频道发布消息:

—> PUBLISH redisChat "xxx"

订阅符合给定模式的频道

—> PSUBSCRIBE pattern[pattern...]

则订阅者的客户端会显示如下消息:

1) "message"
2) "redisChat"
3) "xxx"

Redis事务

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
· 批量操作在发送 EXEC 命令前被放入队列缓存。
· 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
· 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
· 开始事务。
· 命令入队。
· 执行事务

单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。
Redis事务命令

命令描述
DISCARD取消事务,放弃执行事务块内的所有命令
EXEC执行所有事务块内的命令
MULTI标记一个事务块的开始
UNWATCH取消WATCH命令对所有key的监视
WATCH key [key…]监视一个(或多个)key,如果在事务执行之前这个(或这些)key被其他命令所改动,那么事务将被打断

Redis脚本
Redis脚本使用Lua解释器来执行脚本。Redis2.6版本通过内嵌支持Lua环境。
执行脚本的常用命令为EVAL。
语法:
Eval命令的基本语法如下:

—> EVAL script numkeys key [key ... ] arg [arg...]

实例:

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

1) "key1"
2) "key2"
3) "first"
4) "second"

Redis连接
Redis连接命令主要用于连接redis服务。
实例:
客户端如何通过密码验证连接到redis服务,并检测服务是否运行:

—> AUTH "password"

Redis服务器
Redis服务器命令主要是用于管理redis服务器的统计信息。

Redis数据备份与恢复
Redis SAVE 命令用于创建当前数据库的备份

—> SAVE

恢复数据:如果要恢复数据,只需要将备份文件(dump.rdb)移动到redis安装目录并启动服务器即可。获取redis目录可以用CONFIG命令
创建redis备份文件也可以使用BGSAVE,该命令在后台执行。

—> BGSAVE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值