NoSQL---redis

什么是NoSQl
NOSql 是非关系型数据库,他的全名是Not Only SQl 他不是要替代关系型数据库(比如Mysql),只能作为关系型数据库的一个良好的补充。
为了解决高并发、高可用、高可扩展、大数据存储等一系列问题而产生的数据库解决方案,就是NoSql
NoSql的分类
键值数据库:
应用·:处理大量的数据
优点:扩展性好、灵活性好、大量写操作时性能高、快速 查询
缺点:无法存储结构化信息、条件查询效率较低
列柱数据库:
应用:分布式数据存储与管理
优点:查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
文档数据库:
应用:存储、索引并管理面向文档的数据或者类似的半结构化数据
优点:性能好,灵活性高,数据结构灵活
缺点:缺乏统一的查询语言
图形数据库:
应用:大量复杂,互联接,低结构化的图结构场合,如社交网络等
什么是Redis
Redis是使用c语言开发的一个高性能简直数据库。Redis可以用一些键值类型存储数据。
键值类型
String字符串类型;
map 三列类型
List列表类型
set 集合类型
sortedSet 有序集合类型
redis应用场景
缓存,分布式集群架构中的seeeion分离
聊天室的好友在线列表
任务队列
网站访问统计
redis客户端启动命令
./redis-cli -h 192.168.92.169 -p 6379
-h 指定访问的redis服务器的IP地址
-p 指定访问的redis服务器port端口
关闭:quit
Redis数据类型
赋值:set Key(键) value(值)
取值:get key
获取多个键值:mset key value{key,value…}
删除:del key
数值增减:incr key
增加指定的整数:incrby key increment
递减数值:decr key
递减指定的整数:decrby key decrement
向尾部追加值:append key value
获取字符串长度:strlen key
Hash
散列类型
赋值(一次只能设置一个字段值):hset key field value
(一次可以设置多个字段值):hmset key field value【field value…】
取值(一个字段值):hget key field
取值(多个字段值):hmget key field【field】
获取所有的字段值:hgetall key
删除字段:hdel key field【field】
增加数字:hincrby key field increment
判断字段是否存在:hexists key field
只获取字段名称或字段值:hkeys key
获取字段数量:hlen key
List
ArrayLsit和LinkedList的区别
ArrayList是使用数组来存储数据,特点:查询快,增删慢
LinkedList是使用双向链表存储数据,特点:增删快,查询慢,但是查询链表两端的数据也很快。
Redis的list是采用链表来存储的,所以对于redis的list数据类型的操作,是操作list两端的数据来操作的。
向列表两端添加元素:lpush key value [value]
查看列表:lrange key start stop
获取列表元素的个数:llen key
Set
集合类型:无序,不可重复
列表类型:有序,可以重复
增加/删除:sadd key member[member] srem key member[member]
获得集合中的所有元素:smembers key
判断元素1是否在集合中:sismember key member
集合的交集运算:sinter key 【key】
集合的并集运算:sunion key 【key】
SortedSet
SortedSet又叫zset
SortedSet 是有序集合,可排序的,但是唯一
SortedSet和Set的不同之处,是会给set中的元素添加一个分数,然后通过这个分数进行有序排序。
增加元素:zadd score member[score member]
删除元素:zrem key member [member]
获取元素的排名:zrank key member
从大到小:zrevrank key member
获得集合中的元素的数量:zcard key
获得制定分数范围内的元素的个数:zcount key min max
按照排名范围删除元素:zremrangebyrank key start stop
keys命令
返回满足给模式的所有key:key key*
确认一个key是否存在:exists key
删除一个key:del key
重用名key:rename key key1
返回值类型:type key
key在多少秒之后会别删除:explre key seconds
ttl :查看key的缓存时间;
生存时间设置的单位为毫秒:pexplre key millseconds
Rdb持久化方案
Rdb是Redis默认的持久化方案,redis通过快照来将数据持久化到磁盘中。
Rdb问题:一旦redis非法关闭,那么会丢失最后一次持久化之后的数据
如果数据不重要,则不必关心,如果数据不能允许丢失,那么要使用aof方式的持久化方案
总结:在使用aof和rdb方式时,如果redis重启,则数据从aof文件中加载

你可能感兴趣的:(javaweb)