【精】Redis常用操作命令

Redis基本数据类型的操作

Keys操作

keys *    列出所有的key

exists k1    判断k1是否存在

move k1 2    将k1移动到2号库

select 2    切换到2号库

select 0

ttl k1    查看k1的过期时间,-1代表永不过期,-2代表已经过期

expire key 秒钟:为key设置过期时间

type key 查看key的类型

String操作

set k1 v1

get k1

del k1

append k1  在key的后面添加字符

strlen k1    查询key的长度

incr k4    将k4增加1

decr k4  将k4减1

incrby k4 5将k4增加5

decrby k4 5 将k4减去5

getrange k1  0  3  获取指定区间范围内的值,类似于between...and,从0到-1表示全部

setrange k1 0 xxx 将从0下标开始的字符替换为xxx

setex k4 10 v4    将k4值设置为v4并且过期时间为10秒

setnx k4 v4    设置k4的值,如果k4不存在才设值

mset k1 v1 k2 v2 k3 v3 设值多个值

mget k1 k2 k3 获取多个值

msetnx 

List操作

lpush list01 1 2 3 4 5  以左插入方式

rpush list02 1 2 3 4 5  以右插入方式

lrange list01 0 -1  按原来插入方式返回所有list值

lpop list01    从左边弹出一个值

rpop list01    从右边弹出一个值

lindex list01 index    按照索引下标获得元素

lset list01 index value  按照索引下标设置元素

llen list01    list长度

lrem list03 count value 删除count个value

ltrim list03 start end    截取start到end下标的值给list03

rpoplpush list06 list07 list06弹出一个填入list07中

linsert list01 before value1 value2    在value1前面插入value2

linsert list01 after value1 value2    在value1后面插入value2

Set操作

sadd set01 1 1 2 2 3 4 4 只会插入不重复的值

smembers set01    显示set里面的值

sismember set01 value     判断value是不是set01的元素

scard   set01    集合数量

srem set01 value 删除元素

srandmember set01 count    随机取出count个元素

spop set01 [count] 随机弹出元素

smove set01 set02 value 将set01的value值移动到set02中去

sdiff set01 set02    返回差集:在第一个集合但是不在第二个集合中

sinter set01 set02    返回交集:第一个第二个集合共有的

sunion set01 set02    返回并集:第一个第二个并集

Hash操作

hset key filed value    键值对,键为key,值为 key-value类型

hget key filed    取出属性值

hmset    user id 11 age 22 hobby football    设置多个键值对

hmget   user id age hobby    取出多个属性值

hgetall   user        取出所有的属性

hkeys user    取出所有的属性名称

hvals user    取出所有的属性值

hdel    user  id age 删除属性

hlen  user 元素个数

hexists user age 是否存在某个属性

hincrby user age 2 

hincrbyfloat user score  0.2 

hsetnx

Zset操作

zadd set01 score1 v1 score2 v2 score3 v3

 zrange set01 start end [withscores]    展示zset可以带分数

zrevrange set01 0 -1 逆向展示

zrangebyscore set01 startscore  endscore   [withscores]   [limit startindex count] 指定分数段的set集合(表示不包含

zrevrangebyscore ...

zrem set01 v5    删除元素

zcard set01    个数

zcount set01 score1 score2    统计指定分数区间个数

zrank  set01 v4    获得v4的小标

zrevrank set01 v4  逆向获得v4的小标

zcore set1 v4     获得指定值的分数

事务

一个队列中,一次性,顺序性,排他性的执行一系列命令

multi     标记一个事务的开始

exec    执行事务

discard    取消事务

watch    标记一个键

unwatch    取消标记一个键

发布订阅

subscribe c1 c2 c3    订阅多个频道

publish c2 hello    发布到c1频道

psubscribe new*    通过通配符匹配多个订阅

持久化方案

RDB

RDB是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 

优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能 
缺点:RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候

这里说的这个执行数据写入到临时文件的时间点是可以通过配置来自己确定的,通过配置redis在n秒内如果超过m个key被修改这执行一次RDB操作。这个操作就类似于在这个时间点来保存一次Redis的所有数据,一次快照数据。所有这个持久化方法也通常叫做snapshots。

RDB默认开启

AOF

Append-only file,将“操作 + 数据”以格式化指令的方式追加到操作日志文件的尾部,在append操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更,“日志文件”保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。AOF相对可靠,它和mysql中bin.log、apache.log、zookeeper中txn-log简直异曲同工。AOF文件内容是字符串,非常容易阅读和解析。 
优点: 可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)。  
缺点: AOF文件比RDB文件大,且恢复速度慢。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花生糖葫芦侠

创作不易,请多多支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值