Redis知识整理

概念

         关系型数据库:底层需要算法来维持表与表,数据与数据之间 一对一,一对多,多对多的关系。所以开销大,性能相对低。

         关系型数据库代表:Mysql,oracle

         NoSql(非关系型数据库):只是关心数据的存取,不用关心数据与数据之间的关联关系,所以相对①性能高②应对海量数据和高并发的存取③易扩展

         非关系型数据库代表:

  • 键值对存储(key-value):redis
  • 列存储:HBase
  • 文档数据库:mongodb

Redis知识整理

          

官方给出的测试数据:

redis读的速度能达到11万次/秒

redis写的速度能达到81000次/秒 

Redis应用场景:

缓存

任务队列

网站访问统计

数据过期处理(可以精确到毫秒)

应用排行榜

分布式集群架构中Session的分离

Redis安装:

redis是C语言开发的,需要依赖gcc环境

安装环境依赖:yum  install  gcc-c++

tar -zxvf redis-3.0.7.tar.gz

cd  

make(编译)

make PREFIX=/usr/local/redis  install(安装)

安装完成后,在/usr/local/redis/bin 下有几个可执行文件

redis-benchmark      -----性能测试工具

redis-check-aof        -----AOF文件修复工具

redis-check-dump    -----RDB文件检查工具(快照持久化文件)

redis-cli                     -----命令行客户端

redis-server              -----redis服务器启动命令

redis启动需要配置一个配置文件,可以修改端口号等信息

cp  redis.conf  /usr/local/redis

Redis后端启动

修改redis.conf    里面的 daemonize  yes

启动时指定配置文件

cd /usr/local/redis

./bin/redis-server   ./redis.conf

ps  -ef  |  grep -i  redis  (查看redis进程)

关闭redis

①kill  -9  PID (不建议)

./bin/redis-cli  shutdown  (正常关闭,数据保存)

Linux开放6379端口

/sbin/iptables -I INPUT -p tcp --dport 6379-j ACCEPT

/etc/rc.d/init.d/iptables save

用Jedis连接Redis

jedis是redis官方首选的连接redis的开发包

jedis  github地址:https://github.com/xetorthio/jedis

关于java里面用jedis连接redis网上代码比较多此处省略。(也可以用jedis连接池连接)

Redis五种数据类型:

字符串(String)常用

哈希(hash)常用

字符串列表(list)

字符串集合(set)

有序字符串集合(sorted set)

key的定义:①不要太长②不要太短③要有统一命名规范

字符串(String):

①二进制安全的,存入和获取的数据相同

②value最多可以容纳的数据长度是  512M

哈希(hash):(适合存  值对象的信息,比如 用户名,密码,年龄)

①String key 和 String Value 的map容器

②每一个Hash可以存储4294967295个键值对

字符串列表(list):

ArrayList使用数组方式

LinkedList使用双向链表方式

字符串集合(set):

①和list类型不同的是,set集合不允许出现重复元素

②set可以包含的最大元素数量是4294967295

有序字符串集合(sorted set):(应用场景   排行榜)

①sorted-set和set区别

②sorted-set的成员在集合中是有序的(按分数从小到大排序)

③每一个元素都对应一个分数,分数是可以重复的。

一个redis实例默认有16个数据库,默认使用的是0号数据库

Redis持久化(Redis高性能的原因是,所有的数据都存在内存当中)

两种持久化方式:

①RDB方式(默认支持,不需要配置。在指定时间间隔内将内存中的数据集快照写入磁盘)

②AOF方式(以日志方式记录redis的每一次操作,redis启动的时候读取该文件,保证数据完整性)

③无持久化(把redis当缓存用)

④同时使用RDB方式和AOF方式

RDB方式

在 redis.conf里面

save  900  1  (每900秒,至少有一个key,进行一次持久化)

save  300  10

save  60   10000

Redis知识整理

AOF方式

Redis知识整理

Redis知识整理