Redis_2-Redis命令

Posted TheSkyCloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis_2-Redis命令相关的知识,希望对你有一定的参考价值。

单进程模型

Select

Dbsize

Flushdb: 情空当前库

Flushall: 通杀所有库

merz

Redis五大数据类型: 

String: key-value 

Hash: 

List

Set

Zset sorted set: 有序集合


Http://redisdoc.com


Key:

keys

exists key

move key db

expire key秒钟: 给定的key设置过期时间

ttl k1 还能活多久

type key 查看key类型


String:

del key

set/get/del/append 基本操作

incr/decr/incrby/decrby 自增自减

getrance/setrance 获取设置指定区间的值

setex 到期用完终止

setnx set if not exist

mset/mget/msetnx


List:

lpush/rpush/lrange

lpop/rpop

lindex 按照索引下标获取元素

llen

lrem key 删除N个value

ltrim key 截取指定范围的值后再赋值给key

rpoplpush 源列表,目的列表

lset key index value

linsert key before/after 值1 值2 

字符串链表,left\right都可以插入


Set:

单值多value: sadd/smembers/sismember

scard 获取集合中的元素个数

srem key value

srandmember key 随机出几个数

spop key 随机出栈

smove key1 key2


sdiff 差集

sinter 交集

sunion 并集


Hash: 

KV模式不变,V是一个键值对

hset user id 11

hget user id

hmset customer id 11 name li4 age 26

hgetall customer

hdel user name 

hlen

hexists customer id

hkey /hvals

hkeys customer

hvals customer

hincrby customer age 2

hincrbyfloat customer score 0.5

hsetnx 


Zset:

zadd zset01 

zrange zset01 0 -1 withscores

zrangebyscore key ( 不包含 LImit限定

zrem zset01 v5 

zcard/zcount key score /zrank key values/zscore 

zrevank key逆序下标值

zrevrange逆序排序

zrevrangebyscore key


redis.conf


config set requirepass ""

config get requirepass


Redis持久化

rdb: 时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,将快照文件直接读到内存

缺点: 最后一次持久化数据可能丢失

Fork复制一个与当前进程一样的全新进程,作为原进程的子进程 


RDB

redis database

是整个内存的压缩过的Snapshot,可以配置符合快照触发条件的规则

一分钟内改了1万次

5分钟内改了10次

15分钟内改了1次


快照: 

1 Save

2 Stop-writes-on-bgsave-error 数据一致性

3 rdbcompression 压缩算法

4 rdbchecksum CRC64数据校验

5 dbfilename

6 dir


如何触发RDB快照: 

1 配置文件中默认的快照配置,冷备份

2 save \bgsave

3 flushall,产生dump,rdb


如何恢复: 

1 将备份文件移动到redis安装目录并启动服务即可

2 config get dir


AOF

append only file

以日志形式记录每个写操作,redis重启的话就根据日志文件内容将写指令从前到后执行一次以完成数据的恢复工作


恢复:

redis-check-aof --fix appendonly.aof


appendonly

appendfilename

Appendfsync: Always 同步持久化 Everysec 异步操作 No


Rewrite===bgrewriteaof


查看命令: 

ps -ef | gerp redis

lsof -i :6379


redis-server /myredis/redis.conf

redis-cli -p 6379


两者都开启,优先载入AOF

RDB只做后备用途

不AOF,Master-Slavee Replication


Redis事务

可以一次执行多个命令,本质是一组命令集合

一个事务中的所有命令序列化,按顺序串行执行命令而不会被其他命令插入,不许加塞


discard: 取消事务

exec: 执行

multi: 标记

unwatch: 取消监控

watch key : 监控


悲观锁:

乐观锁:提交版本必须大域记录当前版本才能执行更新


事务三阶段:

1 开启 multi

2 入队 将多个命令入队到事务中,接到这些命令并不会马上执行,而是放到等待执行的事务队列里面

3 执行 exec


事务三特性: 

1 单独的隔离操作

2 没有隔离级别的概念

3 不保证原子性


Redis发布订阅:

进程间的消息通信

pub发送 sub接收

subscribe c1

oublish c1


Redis主从复制机制

Master/Slave

主句数据更新后根据配置和策略,自动同步到备份的master/slaver机制

master写

Slave读


1 配从不配主

2 从库配置: slaveof 主库 IP 主库端口

3 修改配置文件

4 一主而从

薪火相传

反客为主

slaveof no one


info replication

slaveof 127.0.0.1 6379


复制原理:

哨兵模式:

redis-sentinel /myredis/sentinel.conf

复制延时



以上是关于Redis_2-Redis命令的主要内容,如果未能解决你的问题,请参考以下文章

Redis_05_Lua脚本实现多条Redis命令原子性

Redis_01_Redis安装与使用

Redis_03_Redis五种基本类型

Redis_02_Redis五种基本类型

20200610 千锋教育 Redis 2. Redis 命令数据类型

Redis基础 -- Redis数据结构Redis通用命令Redis 的 key 的层次结构Redis5种数据类型及基本命令(StringListHashSetSortedSet)