Redis从入门到高可用以及分布式实战(一)
2019-10-12 22:05
417 查看
Redis简介
redis是一个基于key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,拥有丰富的数据结构,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)、Hash(哈希类型的映射表)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
Redis安装
Linux:
下载连接:https://redis.io/download
解压安装:
$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz $ tar xzf redis-5.0.4.tar.gz $ cd redis-5.0.4 $ make
启动
$ cd src $ ./redis-server redis.conf (指定配置文件启动)
window:
下载连接:https://github.com/MicrosoftArchive/redis/releases
解压之后切换到安装目录运行 redis-server.exe redis.windows.conf
Redis客户端有哪些?
- Java客户端:Jedis、Redisson、JRedis、RedisClient
- python客户端:redis-py
关于缓存
Redis五大数据结构即常见命令
推荐一个Redis的命令网站:https://redis.io/commands
- 字符串(String)
set key value | 设置执行key的值 |
get key | 获取指定key的值 |
keys * | 返回key集合 |
getset key value | 将给定 key 的值设为 value ,并返回 key 的旧值(old value) |
setnx key value | 只有在 key 不存在时设置 key 的值 |
setex key seconds value | 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位) |
incr key | 将 key 中储存的数字值增一 |
incrby key increment | 将 key 所储存的值加上给定的增量值(increment) |
decr key | 将 key 中储存的数字值减一 |
decrby key decrement | key 所储存的值减去给定的减量值(decrement) |
测试命令:
- 哈希结构Hash
HSET key field value | 将filed-value(域值对)设置到哈希表key中 |
HGET key field | 获取存储在哈希表中指定字段的值 |
HGETALL key | 获取在哈希表中指定 key 的所有字段和值 |
HKEYS key | 获取所有哈希表中的字段 |
HSETNX key field value | 只有在字段 field 不存在时,设置哈希表字段的值 |
HVALS key | 获取哈希表中所有值 |
测试命令:
- 列表List
LPUSH key value1 [value2] | 将一个或者多个值插入到列表头部 |
LPUSHX key value | 将一个值插入到已存在的列表头部 |
LPOP key | 移出并获取列表的第一个元素 |
LSET key index value | 通过索引设置列表元素的值 |
LINDEX key index | 通过索引获取列表的元素 |
LREM key count value | 移除列表元素 |
RPOP key | 移除列表的最后一个元素,返回值为移除的元素 |
LRANGE key start stop | 获取列表指定范围内的元素 |
测试命令:
- 集合Set
SADD key member1 [member2] | 向集合添加一个或多个成员 |
SCARD key | 获取集的成员数 |
SDIFF key1 [key2] | 返回给定集合的差集 |
SINTER key1 [key2] | 返回给定集合的交集 |
SMEMBERS key | 返回集合中的所有成员 |
SISMEMBER key member | 判断 member 元素是否是集合 key 的成员 |
SMOVE source destination member | 将 member 元素从 source 集合移动到 destination 集合 |
测试命令:
- 有序集合Sort Set
ZCARD key | 获取有序集合的成员数 |
ZADD key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZRANK key member | 返回有序集合中指定成员的索引 |
ZUNIONSTORE destination numkeys key [key ...] | 计算给定的一个或多个有序集的并集,并存储在新的 key 中 |
ZREM key member [member ...] | 移除有序集合中的一个或多个成员 |
ZRANGE key start stop [WITHSCORES] | 通过索引区间返回有序集合指定区间内的成员 |
ZSCORE key member | 返回有序集中,成员的分数值 |
ZINCRBY key increment member | 有序集合中对指定成员的分数加上增量 increment |
测试命令:
Redis数据结构图
典型的使用场景
- 字符串:缓存、计数器、分布式锁、分布式ID。
- HASH:存储用户信息、用户主页访问量。
- LIST:微博关注人的微博时间轴列表。
- SET:点赞功能、踩、标签。
- ZSET:排行榜(本周热议排行榜)
至此,Redis从入门到高可用以及分布式实战(一)对Redis的入门介绍就到这里,下一篇 Redis从入门到高可用以及分布式实战(二)会对Redis进一步介绍,包括实现Redis集群模式(1主2从3哨兵模式)、Redis的主从配置、Sentonel哨兵机制等深入分析,期待!
相关文章推荐
- 【中间件】Redis 实战之主从复制、高可用、分布式
- 2019最新Redis从入门到高可用,分布式实践完整版
- 网盘分享Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,Redis,ActiveMQ,Nginx,Mycat,Netty,Jvm大型分布式项目实战视频教程
- Redis从入门到高可用,分布式实践
- Redis入门及分布式架构视频
- Linux+Redis实战教程_day02_Jedis入门_Redis的数据结构
- Apache-Ignite入门实战之三 - 分布式锁
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)
- 电商详情页系统实战(4) - 支撑高并发+高可用+海量数据+备份恢复的redis的重要性
- Redis实战《红丸出品》1.4 快速入门
- Redis 从入门到实战
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
- Redis入门之redis 连接以及 对字符的操作
- Redis实战(1)入门和适用场合
- 深度解析gRPC以及京东分布式服务框架跨语言实战
- 分布式Redis中集群中(cluster_state:fail),什么时候整个集群不可用了
- Redis 备份、容灾 以及高可用使用
- asp.net core 实战之 redis 负载均衡和"高可用"实现
- [置顶] Docker学习总结(1)——Docker实战之入门以及Dockerfile(一)