Redis系列之-— 01 简介

1. 概述

Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串 string、列表 list、集合 set、散列表 hashmap、有序集合 sortedset。
Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。

2. 数据类型

数据类型 可存储值 操作
STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作
对整数和浮点数执行自增或者自减操作
LIST 列表 从两端压入或者弹出元素
对单个或者多个元素进行修剪,
只保留一个范围内的元素
SET 无序集合 添加、获取、移除单个元素
检查一个元素是否存在于集合中
计算交集、并集、差集
从集合里面随机获取元素
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对
获取所有键值对
检查某个键是否存在
ZSET 有序集合 添加、获取、删除元素
根据分值范围或者成员来获取元素
计算一个键的排名

3. 使用场景

计数器

可以对 String 进行自增自减运算,从而实现计数器功能。
Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。

缓存

将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率。

查找表

例如 DNS 记录就很适合使用 Redis 进行存储。
查找表和缓存类似,也是利用了 Redis 快速的查找特性。但是查找表的内容不能失效,而缓存的内容可以失效,因为缓存不作为可靠的数据来源。

消息队列

List 是一个双向链表,可以通过 lpush 和 rpop 写入和读取消息
不过最好使用 Kafka、RabbitMQ 等消息中间件。

会话缓存

可以使用 Redis 来统一存储多台应用服务器的会话信息。
当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。

分布式锁实现

在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。
可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。

其它

Set 可以实现交集、并集等操作,从而实现共同好友等功能。
ZSet 可以实现有序性操作,从而实现排行榜等功能。

4. Redis 可视化工具

下面推荐 4 款开源管理工具
a) Redis Desktop Mananger
开源地址:https://github.com/uglide/RedisDesktopManager/releases

b) AnotherRedisDesktopManager

Another Redis Desktop Manager 是一款非常好用的 Redis 可视化管理工具,开源免费,兼容 Windows、macOS 和 Linux,性能出众。
开源地址:https://github.com/qishibo/AnotherRedisDesktopManager/

c) QuickRedis

QuickRedis 是也是一款非常好用的 Redis 可视化管理工具。开源免费,兼容 Windows、macOS 和 Linux。它支持直连、哨兵、集群模式,支持亿万数量级的 key。
开源地址:https://github.com/quick123official/quick_redis_blog

d) IRedis

IRedis 是一个支持自动补全和语法高亮 的 Redis 命令行工具,可用来替代 redis-cli。使用 IRedis 可以流畅地输入 Redis 命令,显示结果也非常友好。
开源地址:https://github.com/laixintao/iredis https://github.com/laixintao/iredis

e) Redis Commander

Redis Commander 是一款用 node.js 编写的 Redis 网页管理工具。
开源地址:https://github.com/joeferner/redis-commander https://github.com/joeferner/redis-commander

f) Redis Studio

目录
Redis系列之-—Redis-cli命令总结 https://www.cnblogs.com/liuyitan/p/16296224.html
Redis系列之-—如何测试 Redis 缓存?https://www.cnblogs.com/liuyitan/p/16294956.html
Redis系列之-—内存淘汰策略(笔记)https://www.cnblogs.com/liuyitan/p/12082657.html

参考资料

githubRedis知识整理
redisdoc
Redisdoc2
Rediscommands

posted @ 2017-10-19 14:31  雨 燕  阅读(1225)  评论(1编辑  收藏  举报