**
redis介绍
**
redis官网链接https://redis.io/
redis是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本质是客户端-服务端应用程序软件。特点是使用简单、性能强悍、功能应用场景丰富。
redis命令
reids命令有Cluster、Connection、Geo、Hashes、Hyperloglog、Keys、Lists、Pub/Sub、Scripting、Server、Sets、Sorted Sets、Streams、Strings、Transactions几类。
Cluster
cluster addslots 给节点添加新的插槽
cluster count-failure-reports 返回指定节点失败报告数量
cluster countkeysingslot 返回指定hash槽本地key的数量
cluster delslots 对收到的节点设置hash槽为未绑定
cluster failover强制一个副本执行master节点的手动故障
cluster forget从节点列表移除一个节点
cluster getkeysinslot返回指定hash槽的本地key名称
cluster info展示redis集群节点状态的信息
cluster keyslot返回hash槽指定的key
cluster meet强制一个节点集群和另一个节点握手
cluster nodes获取几点的集群配置
cluster replicate重新配置一个节点为指定master节点的备份
cluster reset重置redis集群节点
cluster saveconfig强制节点保存集群状态到硬盘
cluster set-config-epoch在新的节点上设置epoch
cluster setslot绑定hash槽到指定的节点
cluster slaves列出指定master节点的所有备份节点
cluster replicas列出指定master节点的所有备份节点
cluster slots获取集群插槽到节点的映射数组
readonly允许连接到集群副本节点的读请求
readwrite不允许连接到集群副本节点的读请求
Connection
auth服务器授权
echo输出给定字符串
ping ping服务器
quit关闭连接
select改变当前连接选定的数据库
swapdb交换两个redis数据库
Geo
geoadd添加一个或者多个地理位置
geohash返回一个标准地理位置字符串
geopos返回一个地理索引的所有成员的经度和纬度
geodist返回两个位置的距离
georadius查询一个地理位置索引,找到给定对大距离的所有成员
georadiusbymember查询给定的地理位置索引,找到给定数量的最大距离
Hashes
hdel删除一个或者多个hash属性
hexists检查一个hash属性是否存在
hget获取一个hash的值
hgetall获取一个hash的所有键和值
hincrby对给定的hash增加给定的整数值
hincrbyfloat对给定的hash增加给定的float值
hkeys获取hash的所有key
hlen获取一个hash的属性数量
hmget获取给定hash的所有属性的值
hmset设置多个hash属性的值
hset设置一个hash属性的值
hsetnx仅当一个hash的属性不存在时,设置一个hash的键和值
hstrlen获取一个hash属性值的长度
hvals获取一个hash的所有值
hscan增量遍历hash的属性和关联的值
HyperLogLog
pfadd添加指定的元素到指定的HyperLogLog
pfcount返回HyperLogLog观察的key的近似基数
pfmerge将N个不同的HyperLogLog合并到一个单独的HyperLogLog
Keys
del删除一个key
dump返回key保存的值的序列化版本
exists检查一个key是否存在
expire设置一个key的以秒为单位的存活时间
expireat设置一个key的Unix时间戳的过期策略
keys找到符合给定字符串的所有key
migrate自动将一个key从一个redis实例转移到另一个redis实例
move将一个key移动到另外一个数据库
object检查redis对象的内部结构
persist移除key的过期策略
pexpire设置一个key以毫秒为单位的过期策略
pexpireat设置一个key以毫秒指定的Unix时间戳的过期策略
pttl获得一个key以毫秒为单位的存活时间
randomkey随机获取一个key
rename重命名一个key
renamenx仅当新的key不存在时重命名一个key
restore用给定的序列化值创建一个key,以前用dump方式增加的
sort对给定的set或者sorted set排序
touch指定key最后的访问时间,返回指定的还存在的key
ttl获取一个key的存活时间
type检查key存储的值的类型
unlink在另一个线程中异步的删除一个key,仅仅只是和del一样,但是非阻塞
wait等待在当前连接上下文发送的所有写命令同步副本
scan增量遍历所有的key
Lists
blpop移除并且返回一个list中的第一个元素,或者直到有一个可用的元素
brpop移除并且返回一个list中的最后一个元素,或者阻塞直到有一个可用的元素
brpoplpush从一个list中取出一个元素,放入另一个list并且返回,或者阻塞直到有一个元素可用
lindex根据索引获取一个list的一个元素
linsert在list的一个元素前或者后面插入一个元素
llen获取list的长度
lpop移除并且返回list的第一个元素
lpush插入一个或者多个元素到一个list
lrange获取一个list的给定范围内的元素
lrem从list中删除元素
lset根据索引设置一个元素的值
ltrim将一个list的指定范围的元素去除空
rpop删除list中最后一个元素并且返回
rpoplpush移除list的最后一个元素,放入到另一个list并且返回
rpush在list后追加一个或者多个元素
rpushx仅当list存在时,追加一个元素
Pub/Sub
psubscribe监听发布到channel中的,符合给定条件的消息
pubsub检查发布订阅子系统的状态
publish发送一个消息到channel
punsubscribe停止监听发布到channel中的,符合给定条件的消息
subscribe监听发布到给定channel的消息
unsubscribe停止监听发布到给定channel的消息
Scripting
eval在服务端执行一个lua脚本
evalsha在服务端执行一个lua脚本
script debug对执行过的脚本设置debug模式
script exists脚本缓存里面是否存在给定的脚本
script flush删除脚本缓存里面的所有脚本
script load加载指定的脚本到脚本缓存里
Server
bgrewriteaof异步重写aof
bgsave异步八寸数据集到硬盘
client id返回当前连接的客户端id
client kill杀死客户端连接
client list获取客户端连接列表
client getname获取当前连接名称
client pause停止处理来自客户端的命令一段时间
client reply指定服务器是否响应指令
client setname设置当前连接名称
client unblock解锁被其他连接的阻塞命令阻塞的客户端
command获取redis命令详情的数组
command count获取redis命令的总数量
command getkeys获取所有key的完整redis命令
command info获取给定redis命令的详细数组
config get获取一个配置参数的值
config rewrite用内存配置重写配置文件
config set设置一个配置参数为给定的值
config resetstat重置INFO返回的统计
dbsize返回选中数据库的key数量
debug object获取一个key的debug信息
debug segfault让服务器宕机
flushall移除所有数据库的所有key
flushdb移除当前数据库的所有key
info获取服务器的信息和统计数据
lolwut展示一些电脑艺术和redis版本
lastsave获取最后成功保存到硬盘的Unix时间戳
memory doctor输出内存问题报告
memory help显示不同命令的帮助文本
展示内存分配器的内部统计数据
memory purge申请内存分配器释放内存
memory stats展示内存使用详情
memory usage 展示一个key的内存使用详情
monitor实时监控服务器收到的所有请求
role返回副本上下文中实例的角色
save同步保存数据集到硬盘
shutdown同步保存数据集到硬盘,然后关闭服务器
slaveof将服务器设置为另一个实例的备份,或者提升为master。Redis5以后废弃,使用replicaof代替
replicaof设置服务器为另一个实例的备份或者提升为master
slowlog管理redis的慢查询日志
sync replication使用的内部命令
time返回当前服务器的时间