目录
1-3、HyperLogLog(超日志) 【起始版本:2.8.9】
1-6、Transactions(事务) 【起始版本:2.2.0】
1-8、数据类型 String、list、set、sorted set、hash
1、redis命令
Redis包括14个redis命令组,共两百多个redis命令;
命令组有Connection(连接服务端)、Keys(键)、HyperLogLog(超日志)、Pub/Sub(发布/订阅)、Server(服务端操作)、Transactions(事务)、Geo(地理空间)、Strings(字符串)、Lists(列表)、Hashes(键值对)、Sets(无序集合)、Sorted Sets(有序集合)、Cluster(集群)、Scripting(脚本)
1-1、Connection(连接)
Redis连接命令主要是用于连接 redis 服务;
【涉及到6个命令】
AUTH PASSWORD 密码认证
ECHO message 打印字符串
PING 查看服务是否运行
SELECT index 切换到指定的数据库db0、db1...
Quit 关闭当前客户端与redis服务的连接;
【注意】不会立即关闭连接,将会尽可能快的将未完成的客户端请求执行完,然后再关闭连接;
退出后,再次连接,将会默认到 db0
SWAPDB index index 交换同一Redis服务器上的两个DATABASE 【注意: 起始版本:4.0.0】
【举例】
127.0.0.1:6379> auth 123456 //认证密码
(error) ERR Client sent AUTH, but no password is set
127.0.0.1:6379[5]> ping //检测连接是否正常
PONG
127.0.0.1:6379[5]> ping hello
"hello"
127.0.0.1:6379[5]> echo helloword //打印 helloword
"helloword"
127.0.0.1:6379[5]> select 5 //切换到 db5
OK
127.0.0.1:6379[5]> quit //关闭连接
127.0.0.1:6379> swapdb 0 5 //交换 db0 和 db5
(error) ERR unknown command 'swapdb'
1-2、Keys(键)
Redis 键命令用于管理 redis 的键。
DEL key [key ...] 删除指定的一批keys,如果删除中的某些key不存在,则直接忽略;会产生阻塞;
UNLINK key [key ...] 删除指定的key(s),若key不存在则该key被跳过;非阻塞的;
EXISTS key [key ...] key是否存在, 存在返回1, 不存在返回0;
TYPE key key 所储存的值的类型, 可以返回string, list, set, zset 和 hash等不同的类型
MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中;
TOUCH key [key ...] 【起始版本:3.2.1】修改指定key(s) 最后访问时间;
WAIT numslaves timeout 【起始版本:3.0.0】 ####?????####
阻塞当前客户端,直到所有以前的写命令都成功的传输和指定的slaves确认;
OBJECT subcommand [arguments [arguments ...]] 【起始版本:2.2.3】
OBJECT 命令可以在内部调试(debugging)给出keys的内部对象;
SORT key [BY pattern] [LIMIT offset count] [GET pattern] [ASC|DESC] [ALPHA] destination
默认是按照数值类型排序;
MIGRATE host port key destination-db timeout [COPY] [REPLACE] 【起始版本:2.6.0】
将 key 原子性地从当前实例传送到目标实例的指定数据库上;
-----------------------------------------------------------------------------------
DUMP key 【起始版本:2.6.0】返回key对应的序列化后的值;若key不存在,返回nil;
RESTORE key ttl serialized-value [REPLACE]
【起始版本:2.6.0】反序列化给定的序列化值
-----------------------------------------------------------------------------------
SCAN cursor [MATCH pattern] [COUNT count] 【起始版本:2.8.0】
遍历所有的 key , match是匹配规则, count是每次返回的条数;
RANDOMKEY 随机返回一个 key
KEYS pattern 根据匹配规则,返回所有key;
-----------------------------------------------------------------------------------
PERSIST key 移除 key 的过期时间,key 将持久保持;
EXPIRE key seconds 设置key的过期时间/秒,超过时间后,将会自动删除该key;
EXPIREAT key timestamp 【起始版本:1.2.0】设置key的过期时间/unix时间戳,超过时间后,将会自动删除该key;
PEXPIRE key milliseconds 设置 key 的过期时间以毫秒计。
PEXPIREAT key milliseconds-timestamp
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
PTTL key 以毫秒为单位返回 key 的剩余的过期时间。
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
-----------------------------------------------------------------------------------
RENAME key newkey 修改 key 的名称
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。
127.0.0.1:6379> scan 0 count 3
1) "6"
2) 1) "userids"
2) "3"
3) "userid"
127.0.0.1:6379> scan 0 match *t*
1) "0"
2) 1) "studentName"
127.0.0.1:6379> randomkey
"userids"
127.0.0.1:6379> renamenx 1 2
(integer) 0
127.0.0.1:6379> move studentName 5
(integer) 1
127.0.0.1:6379> keys *
1) "userids"
2) "2"
3) "userid"
4) "3"
127.0.0.1:6379> dump intlist
"\x0e\x01\x17\x17\x00\x00\x00\x14\x00\x00\x00\x06\x00\x00\xfc\x02\xf4\x02\xf6\x02\xf"
127.0.0.1:6379> restore mykey 0 "\x0e\x01\x17\x17\x00\x00\x00\x14\x00\x00\x00\x06\x00\x00\xfc\x02\xf4\x02\xf6\x02\xf3\x02\xf5\x02\xf2\xff\a\x00\xc8\xb8U\xf0\xfd\x7f\xaf\xd2"
OK
127.0.0.1:6379> migrate 190.111.111.121 6379 mykey 0 6000 auth 123456
(error) ERR syntax error
1-3、HyperLogLog(超日志) 【起始版本:2.8.9】
这是一个用来做基数统计的算法;
什么是基数?比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8},基数为5。HyperLogLog 不能返回输入的各个元素,只会根据输入元素来计算基数;
【涉及到3个命令】
PFADD key element [element ...] 添加指定元素到 key 中。
PFCOUNT key [key ...] 返回给定 key 的基数估算值。
PFMERGE destkey sourcekey [sourcekey ...] 将多个key合并为一个,
目标将会存储在第一个key中,
如果第一个key不存在则默认回创建
【举例】
127.0.0.1:6379> pfadd userids 1 2 3 4 5 4 3 2 1 //创建userids
(integer) 1
127.0.0.1:6379> pfcount userids //查看userids的基数 5
(integer) 5
127.0.0.1:6379> pfadd studentName zhangsan lisi lisi //创建studentName
(integer) 1
127.0.0.1:6379> pfcount studentName //查看studentName的基数 2
(integer) 2
127.0.0.1:6379> pfcount studentName userids //查看两个key的基数 7
(integer) 7
127.0.0.1:6379> pfmerge hh userids studentName //合并两个key到hh中
OK
127.0.0.1:6379> pfcount hh //查看hh的基数 7
(integer) 7
1-4、Pub / Sub(发布/订阅)
发布订阅(pub/sub)是一种消息通信模式;
PUBSUB subcommand [argument [argument ...]] 【起始版本:2.8.0】检测PUB/SUB子系统的状态
PUBSUB CHANNELS [pattern] 检测出当前活跃的信道列表;
PUBSUB NUMSUB [channel-1 ... channel-N] 列出指定信道的订阅者个数
PUBSUB NUMPAT 返回订阅模式的数量
-------------------------------------------------------------------------------
PUBLISH channel message 【起始版本:2.0.0】将信息发送到指定的频道
-------------------------------------------------------------------------------
SUBSCRIBE channel [channel ...] 【起始版本:2.0.0】订阅频道
UNSUBSCRIBE [channel [channel ...]] 【起始版本:2.0.0】退订指定的频道,没有指定频道则退订所有频道
PSUBSCRIBE pattern [pattern ...] 【起始版本:2.0.0】根据模式订阅频道
PUNSUBSCRIBE [pattern [pattern ...]] 【起始版本:2.0.0】根据模式退订频道,没有提供则退出所有模式的频道
127.0.0.1:6379> pubsub channels //查看所有活跃的频道
1) "CCTV-2"
2) "CCTV-1"
127.0.0.1:6379> publish CCTV-1 "hello Mr.h 123456" //发布消息到 CCTV-1
(integer) 3
127.0.0.1:6379> subscribe CCTV-1 CCTV-2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "CCTV-1"
3) (integer) 1
1) "subscribe"
2) "CCTV-2"
3) (integer) 2
127.0.0.1:6379> psubscribe CCTV*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "CCTV*"
3) (integer) 1
1-5、server(服务端操作)
--------查看redis命令---【起始版本:2.8.13】-------------------------------------
COMMAND 返回所有Redis命令;
COMMAND COUNT 返回Redis命令的总数
COMMAND GETKEYS 从完整的Redis命令中找到key
COMMAND INFO command-name [command-name ...] 返回多个Redis命令的详细信息
--------处理客户端-------------------------------------------------------------
CLIENT SETNAME connection-name 【起始版本:2.6.9】设置当前连接的名称
CLIENT GETNAME 【起始版本:2.6.9】获取连接的名称
CLIENT ID 【起始版本:5.0.0】返回当前连接的ID
CLIENT PAUSE timeout 【起始版本:2.9.50】阻塞所有客户端一段时间(以毫秒计)
CLIENT UNBLOCK client-id [TIMEOUT|ERROR] 【起始版本:5.0.0】可以解除其他连接客户端的阻塞
CLIENT LIST 【起始版本:2.4.0】获取连接到服务器的客户端连接列表
CLIENT KILL [ip:port] [ID client-id] 【起始版本:2.4.0】关闭客户端连接
CLIENT REPLY ON|OFF|SKIP 【起始版本:3.2】设置服务器是否对客户端的命令进行回复
--------处理配置文件-------------------------------------------------------------
CONFIG SET parameter value 【起始版本:2.0.0】重写某些配置而不用重启Redis
CONFIG GET parameter 【起始版本:2.0.0】
读取redis服务器的配置文件参数,但并不是所有参数都支持
CONFIG REWRITE 【起始版本:2.8.0】重写服务器的redis.conf文件
CONFIG RESETSTAT 【起始版本:2.0.0】重置INFO命令统计里面的一些计算器
--------处理内存-【起始版本:4.0.0】----------------------------------------------
MEMORY DOCTOR 列出 Redis 服务器遇到的内存相关问题,并提供相应的解决建议
MEMORY HELP 返回不同子命令的说明
MEMORY MALLOC-STATS 提供内存分配情况的内部统计报表
MEMORY PURGE 尝试清除脏页
MEMORY STATS 将服务器的内存使用情况
MEMORY USAGE key [SAMPLES count] 返回一个key和它值在RAM中占用的字节数
--------查库、清库、持久化保存---------------------------------------------------
DBSIZE 返回当前数据库里keys的数量
FLUSHALL 删除所有数据库里面的所有数据
FLUSHDB 删除当前数据库里面的所有数据
SAVE 以RDB文件的方式保存所有数据的快照
同步会阻塞所有的客户端的请求
BGSAVE 后台保存DB,不会阻塞其他命令
LASTSAVE 查看BGSAVE命令执行的结果,返回UNIX时间戳
--------慢日志查询---【起始版本:2.2.12】------------------------------------------
SLOWLOG subcommand [argument] 从慢日志查询系统中,查询执行慢的命令和信息
SLOWLOG GET
SLOWLOG RESET
SLOWLOG LEN
--------主从服务器--------------------------------------------------------------
SYNC 用于同步主从服务器;
ROLE 【起始版本:2.8.12】
返回主从实例所属的角色,有master, slave, sentinel
SLAVEOF host port 将当前服务器转变为指定服务器的从属服务器
REPLICAOF host port 【起始版本:5.0.0】将当前服务器转变为某一服务器的副本服务器
REPLICAOF NO ONE 【起始版本:5.0.0】将当前服务器从副本服务器转变回主服务器
--------其它-------------------------------------------------------------------
BGREWRITEAOF 手动触发AOF重写操作;
TIME 【起始版本:2.6.0】
返回当前Unix时间戳(秒)和这一秒已经过去的微秒数
MONITOR 实时打印出 Redis 服务器接收到的命令
SHUTDOWN [NOSAVE] [SAVE] 关闭redis服务
执行顺序如下:
停止所有客户端;
如果配置了save 策略 则执行一个阻塞的save命令;
如果开启了AOF(AppendOnly File),则刷新aof文件;
关闭redis服务进程(redis-server);
INFO [all | default] 返回关于Redis服务器的各种信息和统计数值
返回: server: Redis服务器的一般信息
clients: 客户端的连接部分
memory: 内存消耗相关信息
persistence: RDB和AOF相关信息
stats: 一般统计
replication: 主/从复制信息
cpu: 统计CPU的消耗
commandstats: Redis命令统计
cluster: Redis集群信息
keyspace: 数据库的相关统计
====?????????=======================================
DEBUG SEGFAULT 执行在崩溃的Redis一个无效的内存访问,它是用来模拟在开发过程中的错误。
DEBUG OBJECT 是一个不应该被客户端使用的调试命令
127.0.0.1:6379> COMMAND INFO get set
1) 1) "get"
2) (integer) 2
3) 1) readonly
2) fast
4) (integer) 1
5) (integer) 1
6) (integer) 1
2) 1) "set"
2) (integer) -3
3) 1) write
2) denyoom
4) (integer) 1
5) (integer) 1
6) (integer) 1
127.0.0.1:6379> COMMAND GETKEYS SORT mylist ALPHA STORE outlist
1) "mylist"
2) "outlist"
1-6、Transactions(事务) 【起始版本:2.2.0】
【涉及5条命令】
MULTI 标记一个事务块的开始;
EXEC 执行事务中所有在排队等待的指令并将链接状态恢复到正常;
WATCH key [key ...] 监视key, 如果key在事务执行之前被改动,则事务会执行失败;
UNWATCH 刷新一个事务中已被监视的所有key;
如果执行EXEC 或者DISCARD, 则不需要手动执行UNWATCH
DISCARD 取消(中断)事务;
【举例】
127.0.0.1:6379[1]> multi
OK
127.0.0.1:6379[1]> lpush list 11
QUEUED
127.0.0.1:6379[1]> lpush list 22
QUEUED
127.0.0.1:6379[1]> lpush list 33
QUEUED
127.0.0.1:6379[1]> exec
1) (integer) 5
2) (integer) 6
3) (integer) 7
----discard 会取消事务------------------------------------------------------------
127.0.0.1:6379> multi
OK
127.0.0.1:6379> lpush list 11 12 13
QUEUED
127.0.0.1:6379> lpush list 21 22 23
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> lpush list 11
(integer) 1
1-7、Geo(地理空间)
GEOADD key longitude latitude member [longitude latitude member ...]
添加地理空间位置(纬度、经度、名称)
GEOPOS key member [member ...] 从key里返回所有给定位置元素的位置
GEODIST key member1 member2 [unit] 返回两个给定位置之间的距离
【unit 单位: m(默认)、km、mi英里、ft英尺】
GEOHASH key member [member ...] 返回一个或多个位置的 Geohash 值
GEORADIUS key longitude latitude radius m|km|ft|mi 以给定的经纬度为中心,返回半径距离内的所有位置
[WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
可选项命令会返回额外的信息:
WITHCOORD: 返回相应的经度和维度;
WITHDIST: 返回相应的距离;
WITHHASH: 返回位置元素经过原始 geohash 编码的有序集合分值;
COUNT: 返回指定条数的数据;
ASC|DESC: 排序
GEORADIUSBYMEMBER key member radius m|km|ft|mi 以给定的member为中心,返回半径距离内的所有位置
[WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
----添加地理位置--------------------------------------------------------
127.0.0.1:6379[1]> geoadd orginfo 116.372141 39.967345 BJshifan
(integer) 1
127.0.0.1:6379[1]> geoadd orginfo 116.364594 39.96725 BJyoudian
(integer) 1
----查询存储过的地理位置--------------------------------------------------------
127.0.0.1:6379[1]> geopos orginfo BJshifan
1) 1) "116.37214154005051"
2) "39.967345098153395"
----查询两个位置之间的距离--------------------------------------------------------
127.0.0.1:6379[1]> geodist orginfo BJshifan BJyoudian km
"0.6435"
----查询半径距离之内的位置--------------------------------------------------------
127.0.0.1:6379[1]> georadius orginfo 116 39 1000 km withhash
1) 1) "poin"
2) (integer) 4069047624061615
2) 1) "BJyoudian"
2) (integer) 4069880607872677
3) 1) "BJshifan"
2) (integer) 4069886335369931
127.0.0.1:6379[1]>
127.0.0.1:6379[1]> georadius orginfo 116 39 1000 km desc
1) "BJshifan"
2) "BJyoudian"
3) "poin"
127.0.0.1:6379[1]> georadiusbymember orginfo poin 100 km
1) "poin"
1-8、数据类型 String、list、set、sorted set、hash
【String】
---------存值-------------------------------------------------
SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds – 设置键key的过期时间,单位时秒
PX milliseconds – 设置键key的过期时间,单位时毫秒
NX – 只有键key不存在的时候才会设置key的值
XX – 只有键key存在的时候才会设置key的值
PSETEX key milliseconds value 【起始版本:2.6.0】设置值和过期时间/毫秒
SETEX key seconds value 【起始版本:2.0.0】设置值和过期时间/秒
SETNX key value 如果key不存在,进行赋值
MSET key value [key value ...] 处理多个值
MSETNX key value [key value ...] 处理多个不存在的key值
SETRANGE key offset value 【起始版本:2.2.0】替换一截字符串,从offset+1开始,替换成value;
---------取值-------------------------------------------------
GET key 返回一个key的值
MGET key [key ...] 返回多个key的值
GETSET key value 返回旧值,并重新赋值
GETRANGE key start end 【起始版本:2.4.0】截取字符串:0是左边第一位,-1是右边第一位;
---------append、length-------------------------------------------------
APPEND key value
STRLEN key 【起始版本:2.2.0】返回string类型的长度,空格占1位
---------数值处理-------------------------------------------------
INCR key 数值+1
INCRBY key increment 数值 +increment
INCRBYFLOAT key increment 【起始版本:2.6.0】数值+浮点数
DECR key 数值-1
DECRBY key decrement 数值 -decrement
---------????????-------------------------------------------------
GETBIT key offset
SETBIT key offset value
BITOP operation destkey key [key ...]
BITPOS key bit [start] [end]
BITCOUNT key [start end]
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
【list】
---------存值-------------------------------------------------
LPUSH key value [value ...] 插入到列表的头部
RPUSH key value [value ...] 插入到列表的尾部
RPUSHX key value 【起始版本:2.2.0】ps:key存在且类型是list时才会执行
LPUSHX key value 【起始版本:2.2.0】ps:key存在且类型是list时才会执行
LSET key index value 覆盖下标是index的值
LINSERT key BEFORE|AFTER target value 【起始版本:2.2.0】在target的前后插入value,如果存在多个target则操作第一个
---------取值-------------------------------------------------
LRANGE key start stop 获取list的值:0是左边第一位,-1是右边第一位
LINDEX key index 获取下标是index对应的值
-----弹出式 取值-----
LPOP key 从头弹出一个
RPOP key 从尾弹出一个
RPOPLPUSH list1 list2 将list1的右边一个元素,移动到list2的最左边
-----阻塞式弹出------
BLPOP key [key ...] timeout 从头弹出一个,仅阻塞timeout秒;
BLPOP key [key ...] timeout 从尾弹出一个,仅阻塞timeout秒;
BRPOPLPUSH list1 list2 timeout 将list1的右边一个元素,移动到list2的最左边
LTRIM key start stop 修剪截取list, 保留start到stop;
---------length、移除元素-------------------------------------------------
LLEN key 获取list的长度
LREM key count value 移除count个value, count>0从左删、count<0从右删、count=0全部删
【set】 无序 不可重复
---------存值-------------------------------------------------
SADD key member [member ...] 插入值
---------取值-------------------------------------------------
SMEMBERS key 返回key中的所有值
SRANDMEMBER key [count] 随机取出count个值,负数时默认取绝对值
SUNION key [key ...] 取并集
SUNIONSTORE destination key [key ...] 取并集,将并集保存到destination里;
SINTER key [key ...] 取交集
SINTERSTORE destination key [key ...] 取交集,将交集保存到destination里;
SDIFF key [key ...] 取差值,从第一个key中移除后面key包含的所有元素
SDIFFSTORE destination key [key ...] 取差值,将差值存到destination里;
-------弹出式 取值------
SPOP key [count] 随机弹出1个或count个
---------length、是否存在、移动元素、移除元素---------------------------------
SCARD key 获取长度(基数)
SISMEMBER key member 判断member在key中是否存在,是1 否0
SMOVE list1 list2 member 将list1中的member,移动到list2
SREM key member [member ...] 从key中移除元素
【sorted set】 有序 不可重复
【PS: 注意两个特殊字符,-inf最小 +inf最大】
---------存值-------------------------------------------------
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 添加数据
XX: 更新存在的成员
NX: 不会更新已有成员,只添加新成员。
CH: 返回发生变化的成员总数
INCR: 对成员的分数进行递增操作。
ZINCRBY key increment member 成员member的score值加上增量increment
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [SUM|MIN|MAX]
取多个key的交集存到destination中
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [SUM|MIN|MAX]
取多个key的并集存到destination中
numkeys:numkeys是key的个数;
WEIGHTS:计算score的方法,为每个给定的有序集指定一个乘法因子,默认是1
SUM|MIN|MAX:计算score的方法,默认sum求和
-------弹出式 取值-----
ZPOPMIN key [count] 【起始版本:5.0.0】弹出最小的元素
ZPOPMAX key [count] 【起始版本:5.0.0】弹出最大的元素
-------阻塞式 弹出-----
BZPOPMIN key [key ...] timeout 【起始版本:5.0.0】返回第一个非空key中分数最小的成员和对应的分数
BZPOPMAX key [key ...] timeout 【起始版本:5.0.0】返回第一个非空key中分数最大的成员和对应的分数
---------取值-------------------------------------------------
ZRANGE key start stop [WITHSCORES] 取值,score升序 [WITHSCORES]同时返回对应的score
ZREVRANGE key start stop [WITHSCORES] 取值,score降序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 按score顺序,显示对应的数据
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 按score倒序,显示对应的数据
ZRANGEBYLEX key min max [LIMIT offset count] 按成员字典正序排序,显示限制内的数据
ZREVRANGEBYLEX key max min [LIMIT offset count] 按成员字典倒序排序,显示限制内的数据
注意6个特殊符号:(、) 大于小于; [、] 大于等于 小于等于; -、+ 无限小 无限大
---------length、获取下标、移除元素---------------------------------
ZCARD key 获取元素长度
ZCOUNT key min max 获取score区间内的元素长度
ZLEXCOUNT key min max 获取字典区间内的元素长度
ZRANK key member 获取member的下标,score升序
ZREVRANK key member 获取member的下标,score降序
ZSCORE key member 获取member的score
ZREM key member [member ...] 移除元素
ZREMRANGEBYLEX key min max 根据字典顺序,删除区间的数据;
ZREMRANGEBYSCORE key min max 根据score顺序,删除区间的数据;
ZREMRANGEBYRANK key start stop 根据下标的区间,删除区间的数据;
【hash】 起始版本:2.0.0
---------存值-------------------------------------------------
HSET key field value 存值,覆盖式
HSETNX key field value 存值,不覆盖
HMSET key field value [field value ...] 批量存值,覆盖式
------操作数值------
HINCRBY key field increment increment可以是正整数和负整数
HINCRBYFLOAT key field increment 【起始版本:2.6.0】increment可以是正小数和负小数
---------取值-------------------------------------------------
HGET key field 取值,取一个值
HMGET key field [field ...] 批量取值
HGETALL key 取值,取所有值
HKEYS key 取所有的键
HVALS key 取所有的值
---------移除元素、长度、是否存在---------------------------------
HDEL key field [field ...] 移除元素
HLEN key 返回字段的数量
HSTRLEN key field 返回某一个值的长度
HEXISTS key field 键是否存在
1-9、cluster(集群)
【起始版本:3.0.0】
CLUSTER INFO 返回Redis集群的重要参数
返回:
cluster_state:ok ok状态表示集群可以正常接受查询请求;
cluster_slots_assigned:16384 集群节点的哈希槽数量;
cluster_slots_ok:16384 哈希槽状态不是FAIL 和 PFAIL 的数量;
cluster_slots_pfail:0 哈希槽状态是 PFAIL的数量;
cluster_slots_fail:0 哈希槽状态是FAIL的数量;
cluster_known_nodes:6 集群中节点数量;
cluster_size:3 至少包含一个哈希槽且能够提供服务的master节点数量;
cluster_current_epoch:6 集群当前纪元变量的值,这个值在节点故障转移过程时有用,它是递增和唯一的;
cluster_my_epoch:2 当前正在使用的节点的纪元配置值;
cluster_stats_messages_sent:1483972 通过node-to-node二进制总线发送的消息数量;
cluster_stats_messages_received:1483968 通过node-to-node二进制总线接收的消息数量;
CLUSTER FORGET node-id 删除指定节点,不允许已删除的节点再次被添加进来;
CLUSTER NODES 当前连接节点所属集群的配置信息;
返回:<id> <ip:port> <flags> <master> <ping-sent> <pong-recv> <config-epoch> <link-state> <slot> <slot> ... <slot>
id: 节点ID,是一个40字节的随机字符串;
ip:port: 客户端与节点通信使用的地址;
flags: 标记位,可能的值有: myself, master, slave, fail?, fail, handshake, noaddr, noflags;
master: 如果slave节点有已知的master,则这里列出master节点ID;
ping-sent: 最近一次发送ping的unix时间戳;
pong-recv: 最近一次收到pong的unix时间戳;
config-epoch: 节点的epoch值,每当节点发生失败切换时,都会创建一个新的,独特的,递增的epoch。如果多个节点竞争同一个哈希槽时,epoch值更高的节点会抢夺到。
link-state: node-to-node集群总线使用的链接的状态,可以是connected和disconnected;
slot: 哈希槽值或者一个哈希槽范围;
CLUSTER SLAVES node-id 返回指定master节点的所有slave节点;
--------????-----------------------------------------------------------------
CLUSTER KEYSLOT key 返回一个整数,用于标识指定键所散列到的哈希槽;