NoSql和Redis
1.NoSQL a)?????? 指一些非关系型的数据库.读写性能高,存储会有过期,数据存放于内存中 b)?????? 分类 ???????????????????? i.??????????? 键值数据库 ?????????????????? ii.??????????? 列存储数据库 ????????????????? iii.??????????? 文档型数据库 2.Redis a)?????? 高性能的开源的菲关系型数据库,数据保存在内存里面或者磁盘里面 b)?????? Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。数据结构:数组,list,set,map等redis提供了一下操作方法,我们使用这些方法就可以对存入字符串,组织成各种类型数据库结构(string,map等). c)??????? Redis数据库的优势 ???????????????????? i.??????????? 数据存储:存放在内存,还支持持久化.-存取速度快,并发能力强,数据安全性高 ?????????????????? ii.??????????? 它支持的存储值的类型
d)?????? 使用场景 ???????????????????? i.??????????? 缓存: 对于经常查询的数据,将其放到Redis里面,会提高查询效率,减少数据库压力 ?????????????????? ii.??????????? 计数器引用:微信点赞数量 ????????????????? iii.??????????? 实时攻防系统 ????????????????? iv.??????????? ? e)?????? Redis服务器的安装 ???????????????????? i.??????????? 启动Redis服务
?????????????????? ii.??????????? Redis客户端操作Redis
a)?????? 设置单个键值:set b)?????? 设置多个键值:mset
a)?????? Keys:获取所有的key列表 b)?????? Del key:删除key值 c)??????? expire key xx //设置key的过期时间(xx秒后过期) d)?????? ttl key:查看key 的过期时间 e)?????? flushall:清除Redis数据库的所有数据 f)??????? flushdb? :清除当前库的数据,Redis默认是16个数据库0,1….15
a)?????? 通过命令设置密码 CONFIG SET requirepass 123456 //将密码设置为123456 CONFIG SET requirepass "" //清除密码 AUTH 123456? //输入密码进行认证 b)?????? 修改Redis的配置文件设置密码 requirepass 123456 将密码123456设置到配置文件中,redis启动时加载该文件,即可启用密码 3.Java操作Redis服务器使用Jedis客户端 a)?????? Jedis简单操作 b)?????? 连接池配置 ???????????????????? i.??????????? 通过jedis连接池,简单操作Redis数据库 c)??????? Jedis数据结构的操作 ???????????????????? i.??????????? Key值操作 ?????????????????? ii.??????????? String操作 ????????????????? iii.??????????? List操作 ????????????????? iv.??????????? Set操作 ?????????????????? v.??????????? Hash操作 ????????????????? vi.??????????? 事务处理 ???????????????? vii.??????????? 排序
a)?????? 两种持久化的方式 ???????????????????? i.??????????? RDB和AOF,可以通过修改Redis的conf配置文件进行配置 ?????????????????? ii.??????????? 服务器启动执行载入程序à判断是否开启了AOF的持久化,开启了就载入AOF的文件,未开启就载入RDB的文件 ????????????????? iii.??????????? RDB模式
# save 900 1?? //至少在900秒的时间段内至少有一次改变存储同步一次 # save xxx # save 60 10000 ? ? ?iv.??????????? AOF模式
a)?????? appendonly yes???????? //yes 开启,no 关闭 # appendfsync always //每次有新命令写时就执行一次fsync?同步 #这里我们启用 everysec appendfsync everysec //每秒?fsync同步?一次 # appendfsync no????? //从不fsync(交给操作系统来处理,可能很久才执行一次fsync),它的参数请大家看redis.conf配置文件详解 ? ? ?v.??????????? 小结:Redis是怎么保存数据的.
volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰 allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰 allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰 no-enviction(驱逐):禁止驱逐数据 redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |