- 设值
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
网友评论