Redis 使用入门
NoSql概述
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型的数据库,
Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存/磁盘中。
Redis 是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,redis严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
数据结构:
String set list zset(有序并且不可重复集合) hash(map)等
redis存储数据都是以字符串的方式进行存放,它只是把最终存储的结果值,以一定结构进行存储,
redis提供了一堆操作方法[一堆命令],我们使用这些方法就可以存入字符串,组织成各种数据结构(string,list,set,map等),使用起来更加方便。
特点(优势)
1.数据保存在内存,存取速度快,并发能力强
2.它支持存储的value类型相对更多,包括string(字符串)、list(列表)、set(集合)、 zset(sorted set —有序集合)和hash(哈希类型 – map)。
3.redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
4.它提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
5.Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
6.支持持久化,可以将数据保存在硬盘的文件中
7.支持订阅/发布(subscribe/publish)功能 QQ群 – 群发
总结:
0) 开源免费
1) 数据存储:存放在内存,还支持持久化.-存取速度快,并发能力强,数据安全高
2) 支持value类型更多
3) 支持多个语言客户端
4) 还支持集群(支持高并发,海量数据)
Mysql、Memcached和Redis的比较
mysql |
redis |
memcached |
|
类型 |
关系型 |
非关系型 |
非关系型 |
存储位置 |
磁盘 |
磁盘和内存 |
内存 |
存储过期 |
不支持 |
支持 |
支持 |
读写性能 |
低 |
非常高 |
非常高 |
淘汰策略
淘汰一些数据,达到redis数据都是有效的,节约内存资源。选择合适的淘汰策略进行淘汰。
淘汰一些数据,达到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 持久化)和从机(主从连接)。
Redis存放数据永远过期。 allkeys-lru
volatile-lru,volatile-ttl随意就OK
并且对于缓存而已,就算错误删除也没有关系,如果不是缓慢,集群。
Redis持久化配置
Redis持久化配置在 文件redis.windows.conf 修改操作启用和配置rdb和aof
1 . RDB模式
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.
# save 900 1 //至少在900秒的时间段内至少有一次改变存储同步一次
# save xxx
# save 60 10000
2 . AOF追加模式
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。
如何开启aof模式:
appendonly yes //yes 开启,no 关闭
# appendfsync always //每次有新命令时就执行一次fsync
#这里我们启用 everysec
appendfsync everysec //每秒 fsync 一次
# appendfsync no //从不fsync(交给操作系统来处理,可能很久才执行一次fsync)
appendfilename “appendonly.aof” 是产生的文件储存(可以改为别名)放在redis.windows.conf文件的相同文件夹,
文件是redis的命令
*后面的数字代表命令个数($数),
$后面的数字代表单个命令的字母数,