写在前面
今天继续学习后面的知识。
Redis 操作命令
操作 List 相关 API
-
LPUSH
- 说明: 将某个值加入到一个 key 列表的头部。当列表不存在时会创建。
- 语法:
LPUSH key value [value ...]
- 返回值: 成功返回列表的元素个数,失败返回 0。
-
LPUSHX
- 说明: 与 LPUSH 类似,但必须保证 key 存在。
- 语法:
LPUSHX key value
- 返回值: 成功返回列表的元素个数,失败返回 0。
-
RPUSH
- 说明: 将某个值加入到一个 key 列表的末尾。
- 语法:
RPUSH key value [value ...]
- 返回值: 成功返回列表的元素个数,失败返回 0。
-
RPUSHX
- 说明: 与 RPUSH 类似,但必须保证 key 存在。
- 语法:
RPUSHX key value
- 返回值: 成功返回列表的元素个数,失败返回 0。
-
LPOP
- 说明: 返回并移除列表左边的第一个元素。
- 语法:
LPOP key
- 返回值: 被删除的元素。
-
RPOP
- 说明: 返回并移除列表右边的第一个元素。
- 语法:
RPOP key
- 返回值: 被删除的元素。
-
LRANGE
- 说明: 获取指定下标区间内的元素。
- 语法:
LRANGE key start stop
- 示例:
LRANGE list 0 -1
-
LLEN
- 说明: 获取列表的元素个数。
- 语法:
LLEN key
-
LSET
- 说明: 设置指定索引的值,相当于修改这个位置的值。
- 语法:
LSET key index value
-
LINDEX
- 说明: 获取指定索引位置的元素。
- 语法:
LINDEX key index
-
LREM
- 说明: 删除列表中重复的元素,设置删几个,就会删几个。
- 语法:
LREM key count value
- 说明:
count
为删除的数量。
-
LTRIM
- 说明: 保留列表中特定区间内的元素,其他元素删除。
- 语法:
LTRIM key start stop
-
LINSERT
- 说明: 在某个元素之前或之后插入新元素。
- 语法:
LINSERT key before|after pivot value
操作 Set 相关 API
-
SADD
- 说明: 为集合添加元素。
- 语法:
SADD key member [member ...]
- 返回值: 添加了的元素个数。
-
SMEMBERS
- 说明: 显示集合中的所有元素(无序)。
- 语法:
SMEMBERS key
-
SCARD
- 说明: 返回集合中元素的个数。
- 语法:
SCARD key
-
SPOP
- 说明: 随机返回并删除集合中的一个元素。
- 语法:
SPOP key
-
SMOVE
- 说明: 从一个集合中移动元素到另一个集合,必须是同种类型。
- 语法:
SMOVE source destination member
-
SREM
- 说明: 从集合中删除一个元素。
- 语法:
SREM key member [member ...]
- 返回值: 删除的元素个数。
-
SISMEMBER
- 说明: 判断集合中是否含有某个元素。
- 语法:
SISMEMBER key member
- 返回值: 存在返回 1,不存在返回 0。
-
SRANDMEMBER
- 说明: 随机返回集合中的元素,可以指定返回的个数。
- 语法:
SRANDMEMBER key [count]
-
SDIFF
- 说明: 去掉第一个集合中其它集合含有的相同元素。
- 语法:
SDIFF key [key ...]
-
SINTER
- 说明: 求集合的交集。
- 语法:
SINTER key [key ...]
-
SUNION
- 说明: 求集合的并集。
- 语法:
SUNION key [key ...]
操作 ZSet 相关 API
-
ZADD
- 说明: 添加有序集合元素。
- 语法:
ZADD key score member [score member ...]
- 示例:
ZADD zset 2 xiaohu 3 xiaohu2
-
ZCARD
- 说明: 返回有序集合的元素个数。
- 语法:
ZCARD key
-
ZRANGE
- 说明: 返回有序集合中指定范围的元素(升序)。
- 语法:
ZRANGE key start stop [WITHSCORES]
-
ZREVRANGE
- 说明: 返回有序集合中指定范围的元素(降序)。
- 语法:
ZREVRANGE key start stop [WITHSCORES]
-
ZRANGEBYSCORE
- 说明: 按照分数查找范围内的元素。
- 语法:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
- 示例:
ZRANGEBYSCORE zset 0 20 WITHSCORES LIMIT 0 2
-
ZRANK
- 说明: 返回指定成员的排名(升序)。
- 语法:
ZRANK key member
-
ZREVRANK
- 说明: 返回指定成员的排名(降序)。
- 语法:
ZREVRANK key member
-
ZSCORE
- 说明: 显示某个元素的分数。
- 语法:
ZSCORE key member
-
ZREM
- 说明: 移除指定成员。
- 语法:
ZREM key member [member ...]
-
ZINCRBY
- 说明: 给指定元素增加分数。
- 语法:
ZINCRBY key increment member
- 说明: 如果需要减分,
increment
可以是负数。
操作 Hash 相关 API
-
HSET
- 说明: 设置一个或多个 key/value 对。
- 语法:
HSET key field value [field value ...]
-
HMSET
- 说明: 设置多个 key/value 对。
- 语法:
HMSET key field value [field value ...]
-
HSETNX
- 说明: 设置一个不存在的 key 的值。
- 语法:
HSETNX key field value
- 返回值: 设置成功返回 1,失败返回 0。
-
HGET
- 说明: 获取指定 key 对应的值。
- 语法:
HGET key field
-
HGETALL
- 说明: 获取所有 key/value 对。
- 语法:
HGETALL key
-
HMGET
- 说明: 获取多个 key 对应的值。
- 语法:
HMGET key field [field ...]
-
HDEL
- 说明: 删除指定的 key/value 对。
- 语法:
HDEL key field [field ...]
- 返回值: 删除成功的个数。
-
HEXISTS
- 说明: 判断某个 key 是否存在。
- 语法:
HEXISTS key field
- 返回值: 存在返回 1,不存在返回 0。
-
HKEYS
- 说明: 获取所有的 key。
- 语法:
HKEYS key
-
HVALS
- 说明: 获取所有的 value。
- 语法:
HVALS key
-
HINCRBY
- 说明: 为指定 key 对应的值进行加法运算(只能针对数值做运算)
- 语法:
HINCRBY key field increment
-
HINCRBYFLOAT
- 说明: 为指定 key 对应的值增加浮点数。
- 语法:
HINCRBYFLOAT key field increment
Redis 主从复制
主从复制架构
主从复制主要用于数据冗余备份,从节点用于数据同步,但无法自动处理主节点故障。
主从复制架构图
搭建主从复制
-
准备工作
- 创建三个目录:master, node1, node2。
- 拷贝
redis.conf
配置文件到各目录:cp redis-7.0.0/redis.conf ./master/ cp redis-7.0.0/redis.conf ./node1/ cp redis-7.0.0/redis.conf ./node2/
-
配置文件修改
- master
port 6379 protected-mode no
- node1
port 6380 protected-mode no replicaof <masterip> <masterport> # 例如:replicaof 192.168.40.110 6379
- node2
port 6381 protected-mode no replicaof <masterip> <masterport> # 例如:replicaof 192.168.40.110 6379
- master
-
启动 Redis 实例
cd /usr/local/soft/bigdata/redis-install redis-server ./master/redis.conf redis-server ./node1/redis.conf redis-server ./node2/redis.conf