切换某个库 (默认有0~15个库)
select [number]
查看某个key所占的字节数
memory usage key
删除某个key
del key #阻塞删除key
unlink key #异步非阻塞删除
获取所有的key
keys * #慢,大量缓存不建议这样遍历查询
scan 0 match * count 10000 #快,游标式的遍历
单节点模式下客户端访问
redis-cli -a [密码] -h [IP] -p [端口]
集群模式下 客户端访问
redis-cli -a [密码] -c -h [IP] -p [端口]
添加一条String类型数据
set key value
添加一条String类型数据
mset key1 value1 key2 value2
获取某个字符串key的值
get key
自增(默认 +1)
incr key number
自增(默认-1)
decr key number
删除key
del key
设置属性 (可设置多个key value)
hset keyname field1 value1 field2 value2
获取某个属性值
hget keyname filed
获取key的多个字段
hmget keyname field1 field2
获取key的所有字段
hgetall keyname
hash中进行自增、自减
hincrby keyname filed 10 #增长
hdecrby keyname filed 10 #减少
左进
lpush key value1 value2 value3
左出
lpop key
右进
rpush key value1 value2 value3
右出
rpop key
查看范围
rlange key cursor number
添加内容
sadd key value1 value2
查询key里所有的值
smembers key
移除key里面的某个value
srem key value
随机移除某个value
spop key
判断这个集合里是否有该成员
SISMEMBER key "string"
返回两个set的并集
sunion key1 key2
返回key1剔除交集的那部分(差集)
sdiff key1 key2
跟siffer相反,返回交集
sinter key1 key2
添加元素
zadd key score value [score value..]
获取key的长度
zcard key
获取集合的值并按照score排序 ( 最小的是最上面)
zrange key start end # 排序小到大
zrevrange key start end # 排序大到小
为key中某个值增加 socre分
zincrby key score value
删除key中的某个值
zrem key value
根据key中的某个value值 ,返回score
zscore key value
移除有序集 key 中,指定排名(rank)区间内的所有成员。【返回个数】
zremrangebyrank key [start] [stop]
统计key中区间的值有几个元素(返回N个)
zcount key [数值min] [数值max]
根据value获取某个值的位置 【获取排序号,默认小到大】
zrank key value # 默认小到大排序
zrevrank key value # 大到小排序
根据score值获取区间的value
zrangebyscore key [score:min] [score:max] #小到大排序
zrangebyscore key [score:max] [score:min] #大到小排序
返回有序集key中,所有score值介于min和max之间(包含等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列,最小的是最上面
zrangebyscore key [数值min] [数值max]
bitmaps 更多用法
指定偏移量bit位置设置值
SETBIT key offset value
# SETBIT user:sign:98:202003 0 1 # 3月1号签到
# SETBIT user:sign:98:202003 2 1 # 3月3号签到
查询指定偏移位置的bit值
GETBIT key offset
# getbit user:sign:98:202003 2 #获取用户98的2020年3月3号的value ,0-未签到,1-签到
统计指定字节区间bit为1的数量 (统计总签到次数)
BITCOUNT key [start end]
# bitcount user:sign:98:202003 #返回总数
操作多字节位域 (获取当前月的所有签到数据 , 计算连续签到天数)
BITFIELD key [get type offset] [set type offset value] [incrby type offset increment] [overflow wrap/set/fail]
# bitfield user:sign:98:202203 get u3 0
# get u3 : 这个u 代表是要求无符号的类型去转进制, 3代表3个
#但是返回内容是 从二进制转成十进制。
查询指定字节区间的第一个被设置成1的bit位的位置
BITPOS key bit [start] [end]
用于地址位置,经纬度计算 ,更多例子
添加地理位置
GEOADD key longitude latitude member [longitude latitude mermber...]
# GEOADD location 121.446617 31.205593 'zhangsan'
# GEOADD location 121.4465774 31.20485103 'lisi' 121.44534 31.2031 'wangwu' 121.4510648 31.2090667 'zhangliu'
两点间的距离
GEODIST key member1 member2 [unit]
# GEODIST location zhangsan lisi m
"82.4241"
# GEODIST location zhangsan lisi km
"0.0824"
返回标准的Geohash值
GEOHASH key member [member]
#geohash location zhangsan
"wtw3e8f9z20"
返回key中给定元素的位置信息(经纬度)
GEOPOS key member [member ...]
# GEOPOS location zhangsan
121.44661813974380493
31.20559220971455971
# GEOPOS location zhangsan lisi
"121.44661813974380493
31.20559220971455971
121.44657522439956665
31.20485207113603821"
返回以某点为圆心,距离为半径的其他位置元素
GEODIUS key longitude latitude redius m\|km\|ft\|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
# georadius location 121.446617 31.205593 3000 m
wangwu
lisi
zhangsan
zhangliu
# georadius location 121.446617 31.205593 3000 m WITHCOORD
wangwu
121.44534140825271606
31.20310057881493293
lisi
121.44657522439956665
31.20485207113603821
zhangsan
121.44661813974380493
31.20559220971455971
zhangliu
121.45106524229049683
31.20906731242401833
跟georedius一样,只不过圆心是给定的memeber元素
GEODIUSBYMEMBER key longitude latitude redius m\|km\|ft\|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
# georadiusbymember location zhangsan 3000 m
wangwu
lisi
zhangsan
zhangliu
# georadiusbymember location zhangsan 3000 m withcoord
wangwu
121.44534140825271606
31.20310057881493293
lisi
121.44657522439956665
31.20485207113603821
zhangsan
121.44661813974380493
31.20559220971455971
zhangliu
121.45106524229049683
31.20906731242401833
扫描bigkey
redis-cli --bigkeys
获取慢查询日志
slowlog get n
性能测试
./redis-benchmark -a [密码] -h [Ip] -p [端口] -t [指令/命令] -r 100000 -n 1000000 -c 1000
查看Redis(集群、主从、节点)状态以及内存使用情况
info replication
客户端 查看节点信息
redis-cli -a [登录密码] -c -h [IP地址] -p [端口] cluster nodes
通过check 查看节点信息(列表)
redis-cli -a [登录密码] --cluster check [IP+端口]
集群 · 添加主节点
redis-cli --cluster add-node new_host:new_port existing_host:existing_port --cluster-master-id node_id
集群 · 重新分片
redis-cli --cluster reshard host:port --cluster-from node_id --cluster-to node_id --cluster-slots --cluster-yes