发表于: 2021-12-10 21:54:07

0 760


学习非关系型数据库 

非关系数据库的特点:

1.方便扩展(数据之间没有关系,很好扩展)

2.大数据量高性能(redis 一秒能写8万次,读11万次,细粒度缓存,性能高)

3.数据类型事多样型的(不需要事先设计数据库,随取随用)


非关系型数据库

不仅仅是数据库

没有固定的查询语言

键值对形式存储,列存储,文档存储,图形数据库(社交关系)

最终一致性

高性能,高可用,高可拓展


了解REDIS 数据库

单线程 默认端口号:6379 默认有16个数据库

redis数据库的命令

select 切换数据库

dbsize    查看数据大小

flushdb   清空当前数据库

String 类型

keys *   查看数据库所有key值

exists   查询key是否存在

move   移除key值

expire。  这是key值过期时间

type     查询key类型

append。 追加key的value值

strlen。获取字符串长度

ttl。  查看key中value 过期时间

incr  自增1

decr 自减1

incrby  设置步长 指定增量

decrby   设置指定减量

getrange  获取字符串范围

mset  同时设置多个key值

mget  同时获取多个key值

setex  新增key 并设置过期时间

setnx  不存在再设置value值 (在分布式锁中会常用)


Redis 事务

redis 单体命令是原子性的,单事务不保证原子性

redis事务本质:一组命令的集合,一个事务中的所有命令都会被序列化,在执行过程中会按照顺序执行

redis事务具有一次性,顺序性,排它性

---队列    set   set  get  set  执行

所有命令在事务中,并没有直接执行,只有发起执行命令才会执行

开启事务。  multi

127.0.0.1:6379> MULTI

OK

127.0.0.1:6379(TX)> set key v1

QUEUED

127.0.0.1:6379(TX)> set key1 v2

QUEUED

127.0.0.1:6379(TX)> set key3 v3

QUEUED

127.0.0.1:6379(TX)> get key3

QUEUED

127.0.0.1:6379(TX)> exec    执行事务

1) OK

2) OK

3) OK

4) "v3"


redis中 watch 可以当作redis乐观锁操作

如果事务失败 需解锁继续执行

watch  key  加锁

multi       开启事务

decrby    设置减量

incrby     设置增量

exec       执行 

unwatch   解锁





返回列表 返回列表
评论

    分享到