1什么是Redis
Redis是一个基于内存的,使用C语言开发的 key-value的 nosql 的数据库
nosql:1 没有sql ,不支持sql
2 不仅仅只有sql(不做复杂查询,做简单查询)
Redis运用到哪些场景
1 对数据高并发的读写(一定量)
2 对数据高可扩展性能
3 速度够快,能够快速的存储数据
详细具体方面
1 取最新N个数据的 操作 (比如获取订单的前10个)
2 取Top N操作(比如获取交易金额最大的5个)
3 需要精准设定过期的场景(客户租车,这段时间需要,过了这段时间就不需要了)
4 计数器应用(计算多少个人)
5Pub/Sub构建实时系统
6缓存数据(缓存的是热数据)
7构建队列系统(yarn的三种调度器)
不实用的场景
需要事务支持
基于sql的结构化查询存储,处理复杂关系,需要急需查询
热数据: 经常被使用到的数据,访问频繁较高的数据为热数据
口袋 ,书包(经常用到的东西装起来)
Nosql 的举例
1 mencache 比较早的数据库,不支持持久化,目前使用的很少
2 redis 覆盖了mencache几乎所有的功能,支持数据持久化,支持多种结构化的数据
3 mongoDB 也是key-value模式, 对value进行了很多优化,在部分场景中可以取代关系型数据库
4 hbase 海量数据,精准查询,快速返回
Redis 数据库的特点
1 高效性 : 读的速度110000次/s, 写的速度是81000 次/s
2 原子性: Redis的所有操作都是原子性,不能在细化
3支持多种数据结构: string (字符串) list(列表) hash(哈希),set(集合)
4 稳定性强: 支持数据持久化,支持主从结构的数据备份
5 支持数据有效期,支持订阅
Redis的安装
1 上传Redis压缩包
cd /export/softwares
2 解压Redis
cd /export/softwares
tar -zxvf redis-3.2.8.tar.gz -C …/servers/
3 node01执行以下命令安装C程序运行环境
yum -y install gcc-c++
node01执行以下命令在线安装tcl
yum -y install tcl
4 Redis 编译(因为是C语言编写的)
cd /export/servers/redis-3.2.8/
make && make install
5 修改配置文件
5.1 创建日志存放的路径和数据持久化的路径
cd /export/servers/redis-3.2.8/
mkdir -p /export/servers/redis-3.2.8/logs
mkdir -p /export/servers/redis-3.2.8/redisdata
vim redis.conf
bind node01 # redis绑定到哪个节点上
daemonize yes # 改为yes 可以在后台运行
pidfile /var/run/redis_6379.pid # 这个不需要改,每个任务在进行时,都有进程号,写到这个文件里
logfile "/export/servers/redis-3.2.8/logs/redis.log" # 必须是文件,不能是目录
dir /export/servers/redis-3.2.8/redisdata
5.2启动redis
成功
进入客户端
Redis中数据类型
Redis 文档
https://www.runoob.com/redis/redis-data-types.html
String
增
1 set key value 设置一个字符串
2 mset key1 value1 key2 value2 一次设置多个 key value
3 setex key x(多少秒) value(值) 设置一个变量的生命周期
4 setnx key value 当变量不存在时,可以设置
查
1 get key 查询字符串的值
2 getrange key start end 查询字符串部分(开始索引和结束索引)
3 mget key1 key2 key3 查询多个key 的value值
4 strlen key 查询字符串的长度
改
1 set key value 对已存在的key的value的值进行修改(更新)
2 append key value 对已存在的变量进行追加
删
del key 对已存在的变量进行删除
其他
1 getset key value(New) 先获取然后在修改
2 setrange key offer(偏移量开始改的位置) xx (修改几个替换几个) 输入的内容多于里面的就全部替换
1 incr key 累加 1
2 incrby key N 累加N (N是多少就加多少)
3 incrbyfloat key 累加小数
4 decr key 减一
decrby 减N(N是多少就减多少)
hash
增
1 hest key1 key2 value 设置一个key value
2 hsetnx key1 key2 value2 这个变量不存在时可以添加
3 hmset key1 key2 value2 key3 value3 key4 value4
查
hget key1 key2 获取一个变量的值
hexists key1 key2 查看这个是否存在
hgetall key 查看这个变量的所有值
hkeys key(最外) 查询这个变量所有的key
hlen key 查询key的长度
hmget key1 keyN 查询 某一个key的值
改
hset key1 key2 value(更新的值) 修改value的值
删
del key 删除key 这个变量
其他
hincrby key1 key2 N 累加这个值
hincrbyfloat key1 key2 n(小数) 累加小数