NoSQL的适用场景:
- 对数据高并发读写
- 对海量数据的高效率存储和访问
- 对数据的 高可扩展性 和 高可用性
Redis:为了保证效率,数据都是缓存在内存中的,但是,如果数据库突然宕机,数据就会发生丢失,因此,它也可以周期性的把更新的数据写入磁盘,或者把修改操作写入追加的记录文件。
redis可以后面接 MySQL集群同步,如果Redis访问失败,则会访问MySQL。
Redis 的Strings类型及操作:
Redis的string可以包含任何数据。
- 我们添加一个name=qiuchen的键值对: set name qiuchen
获取value:get name
同一个键,如果重复赋值则会发生覆盖。
- setnx student zhangsan
setnx:如果key已经存在,则返回0;如果key不存在就会插入。nx:“not exist”的意思
- setex name 10 tom
setex :可以设置key的消失时间。set name 10 tom 的含义是:name这个键 只存在10秒,值是tom。
10秒钟之后,这个键会自动消失。
- mset key1 tom1 key2 tom2
mset:批量设置键值对。
mset key1 tom1 key2 tom2 的含义是:同时设置键key1 和 键key2 的值,分别是 tom1 和tom2
- mget就可以批量获取键的值。
如果想获取键为key1 key2 key3 key4的值,就可以 mget key1 key2 key3 key4
- setrange email 4 163.com
上面的命令的含义是:对键为email的值在第4个字符重新替换。
- incr/decr:针对值为数字的键,自增1/自减1
incr number
decr number
- 如果想自增5,或者自减5,则用 incrby 或者 decrby
例如:使键为num的值自增5:incrby num 5
使键为num的值自减5:incrby num -5 或者 decrby num 5
- append name chen
含义:在键名为name 的值后面,添加字符串chen