您的位置:首页 > 数据库 > Redis

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数据结构图

典型的使用场景

  1. 字符串:缓存、计数器、分布式锁、分布式ID。
  2. HASH:存储用户信息、用户主页访问量。
  3. LIST:微博关注人的微博时间轴列表。
  4. SET:点赞功能、踩、标签。
  5. ZSET:排行榜(本周热议排行榜)

至此,Redis从入门到高可用以及分布式实战(一)对Redis的入门介绍就到这里,下一篇 Redis从入门到高可用以及分布式实战(二)会对Redis进一步介绍,包括实现Redis集群模式(1主2从3哨兵模式)、Redis的主从配置、Sentonel哨兵机制等深入分析,期待!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis