设值
set KEY VALUE
获值
get KEY
设置过期时间(单位:s)
set KEY VALUE ex SECONDS
设置过期时间(单位:s)
exprire KEY SECONDS
设置过期时间(单位:ms)
pexprire KEY MILLISECONDS
设置UNIX过期时间戳
exprireat KEY timestamp
设置UNIX过期时间戳
pexprireat KEY MILLISECONDS-TIMESTAMP
删除过期
rersist KEY
存在则不插入
set B 2 nx
存在则修改
set B 2 xx
批插入
mset A 1 B 2 C 3
批插入(原子操作)
msetnx D 7 E 3
获取所有键keys *
设置新值并返回旧值
getset A 2
将值VALUE插入到字符串键key已存储内容的末尾(字符串拼接)
append KEY VALUE
获取字符串长度
strlen KEY
获取键值为key的字符串从index1到index2的值(index从左往右 从0开始 从右往左 从-1开始)
getrang KEY INDEX1 INDEX2
整型
incrby KEY INTNUM(整型)
将key的值加INTNUM(没有则创建,并将INTNUM赋给key)
decrby KEY INTNUM
将KEY的值减INTNUM
KEY值加一
incr KEY
KEY值减一
decr KEY
浮点型
incrbyfloat KEY NUM(浮点型)
将key的值加NUM(没有则创建,并将NUM赋给key,通过传入负值做减法)
TTL KEYPTTL KEY
查看剩余生存时间
KEY存在,但没有设置TTL,返回-1
KEY存在,还在生命周期内,返回剩余的秒
KEY曾经存在,但已消亡,返回-2
键类型
type KEY
键是否存在
exists KEY
键重命名
renamenx KEY NEWKEY
删除键
del KEY
设置键为key的二进制的OFFset(从右往左)位值为VALUE
setbit KEY OFFSET VALUE
获取键为key在OFFset位上的值(从右往左)最低位开始正数符号位为1负数为0getbit KEY OFFSET
返回key在指定区间第一次出现的位置
bitpos KEY BIT [START][END]
获取key二进制位数
bitcount KEY
二进制位操作
bitop OPERATION KEY [KEY ...]
清除当前库数据flushdbflushall
清除所有库中的数据
List列表(Linked List实现元素为字符串)b ul LEFTr RIGHTx EXIST
从左压入元素
lpush KEY VALUE
从左压入元素
lrushx KEY VALUE
从右压入元素
rpush KEY VALUE
从右压入元素
rpushx KEY VALUE
从左弹出元素
lpop KEY
从右弹出元素
rpop KEY
从source尾部弹出元素,压入destination头部
rpoplpush SOURCE DESTINATION
返回指定范围元素
lrange KEY START STOP
获取指定位置的元素
lindex KEY INDEX
设置指定位置元素的值
lset KEY INDEX VALUE
元素列表长度(元素个数)
llen KEYLREM KEY COUNT VALUEcount>0:从表头开始遍历移除count个值为VALUE的元素count<0:从表尾开始遍历移除count绝对值个值为VALUE的元素count=0:移除所有值为VALUE的元素
移除从start到stop以外的元素
ltrim KEY START STOP
在pivot(key中已有元素)之前(BEFORE)或之后(AFTER)插入元素VALUE
linsert KEY BEFORE|AFTER PIVOT VALUE
从列表头部阻塞弹出元素
blpop KEY timeout
从列表尾部阻塞弹出元素
brpop KEY TIMEOUT
从一个列表尾部阻塞弹出元素压入另一个列表的头部
brpoplpush SOURCE DESTINATION TIMEOUThash散列
设置单个字段(键,字段,值)
hset KEY FIELD VALUE
KEY的field不存在时才执行
hsetnx KEY FIELD VALUE
设置多个字段
hmset KEY FIELD VALUE [FIELD VALUE ...]
返回字段个数hlen KEY
判断字段是否存在(key或field不存在返回0)
hexists KEY FIELD
返回字段值
hget KEY FIELD
返回多个字段值
hmget KEY FIELD [FIELD...]
获取所有键值对
hgetall KEY
获取所有键
hkeys KEY
获取所有值
hvals KEY
给KEY的FIELD字段加INCREMENT(整型)
hincrby KEY FIELD INCREMENT
给key的field字段加increment(浮点型)
hincrbyfloat KEY field increment
删除key的field字段
hdel KEY field [field...]
Set集合
无序的,去重的
元素字符串类型
sadd KEY member [member...]
增加一个或多个元素(如果元素已存在,自动忽略)
srem KEY member [memver...]
移除一个或多个元素(如果元素不存在,自动忽略)
smembers KEY
返回集合所有元素(元素过多会产生阻塞)
sismember KEY member
检查元素是否存在
SRANDMEMBER KEY count
随机返回集合中count个元素(默认为1)
count大于集合基数,返回所有元素
count>0返回可重复出现的count绝对值个
SCARD KEY
返回集合元素个数(不需要遍历)
SPOP KEY
随机移除并返回被移除的元素
smovl SOURCE DESTINATION MEMBER
移除source中的member到destination
sdiff KEY [key...]
从第一个key中去除其他集合和自己的交集部分
sdiffstore DESTINATION KEY [KEY...]
将差集结果存到destination中
sinter KEY [KEY...]
取所有集合交集部分sinter
store destination KEY [key...]
将交集结果存到destination中
sunion KEY [KEY...]
取所有集合并集部分
sunionstore DESTINATION KEY [KEY...]
将并集结果存到DESTINATION中SortedSet集合有序的,去重的元素字符串类型每个元素都关联一个浮点数分值(score),并按照分值从大到小顺序排列集合中的元素(分值可以相同)
增加一个或多个元素(如果元素已存在,则使用新的score)
zadd KEY SCORE MEMBER [SCORE MEMBER...]
移除一个或多个元素(元素不存在,自动忽略)
zrem KEY MEMBER [MEMBER...]
显示分值
zscore KEY MEMBER
增加或减少(increment为负数)分值
zincrby KEY INCREMENT MEMBER
返回元素排名(索引从0开始)
zrank KEY MEMBER
返回指定区间元素
zrange KEY START STOP [WITHSCORES]
如果score相同,则按照字典序lexicographical order排序
默认按照score从小到大,如果需要score从大到小排列,使用ZREVRANGE
返回指定分值区间元素
zrangebyscore KEY MIN MAX [WITHSCORES] [LIMIT OFFSET COUNT]
返回score默认属于[min,max]之间,元素按照score升序排序,score相同字典序LIMIT中OFFset代表跳过多少个元素,count代表返回个数使用小括号,修改区间为开区间-inf和+inf表示负无穷和正无穷
删除指定排名范围元素
zremrangebyrank KEY START STOP
返回集合中元素个数
zcard KEY
返回指定范围元素(分值)
zcount KEY MIN MAX
并集
zunionstore DESTINATION NUMKEYS KEY [KEY ...] [weights WEIGHT] [aggregate sum|min|max]
NUMKEYS指定key的数量,必须WEIGHTS权重,key中每一个score都要乘以权重
AGGREGATE指定并集结果的聚集方式
SUM:将所有集合中某一元素的score值之和作为结果集中该成员的score值MIN:将所有集合中某一元素的score值中最小值作为结果集中该成员的score值
MAX:将所有集合中某一元素的score值中最大值作为结果集中该成员的score值
RDB持久化(全量备份)
RDB文件(二进制)
定时更新(消耗大,不完全安全)
save M N
距离上次创建RDB文件已过m秒,且所有数据库总共已发生不少于n次的修改,则执行BGSAVE
bgsave
执行时不会阻塞进程(fork子进程,效率稍低)
AOF持久化(增量备份)
使用数据库日志来保存每一条命令appendfsync always
服务器没写入一个命令,调用一次fdatasyncappend
fsync everysec
服务器每秒调用一次fdatasync appendfsync no
服务器不主动调用fdatasync always
速度慢ererysec
默认值
AOF文件冗余时,AOF文件过大,需要AOF重写,以减小AOF文件
客户端向服务器发送BGREWRITEAOF
命令通过设置配置选项来让服务器自动执行BGREWRITEAOF
命令:auto-aof-rewrite-min-size
,触发AOF重写所需的最小体积,只要AOF文件的体积大于等于size时.
服务器才会考虑是否进行AOF重写主从复制Master:只能写
Slave:只能读
redis-server
--slaveof(启动)配置当前服务为slave
SLAVEOF host port (命令行)将当前服务器状态从master修改为其它服务器的slave
redis-server config.conf(配置文件)
config.conf文件内容:
slaveof master-ip master-portslave-portMaster出现故障时Slave使用SLAVEOF no one命令成为Master,其它Slave使用slaveof命令指向新的Master(手动)
Redis哨兵Sentinel
配置文件Sentinel monitor
监视名为name的主服务器,当quorum个Sentinel判断主服务器下线时,Sentinel才会同意故障转移
Sentinel默认端口号为26379
Redis Twemproxy(分片)
Redis集群最大节点个数 16384
作者:quanee
链接:https://www.jianshu.com/p/0688896be634