Redis的安装
-
1.Redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc。
-
2.安装gcc命令:yum install gcc-c++
-
3.首先从官网下载Redis压缩包,利用Xftp6传入至CentOS7系统中。
-
4.先安装使用tar命令解压缩。tar -zxvf redis-x.x.x.tar.gz 解压缩之后进入redis-x.x.x文件中,使用make命令测试。make是对redis作一个基本编译,如果没有安装gcc,就会出错。
-
5.安装:指定安装路径
-
进入redis的bin目录中,有以下文件:
其中,redis-cli是命令行客户端,redis-server启动客户端。
-
设置redis.conf配置文件,用vi命令进入,将damonize on改为yes,并保存文件。
-
最后,加载配置文件并启动命令:./bin/redis-server ./redis.conf
至此,配置完成。
-
关闭redis服务:
redis.conf 文件位置:去usr/local/redis下找redis.conf
启动redis
NoSQL概述
NoSQL:Not-Only SQL 非关系型数据库
为什么需要NoSQL?
-
High-performance 高并发读写
-
Huge-Storage 海量数据的高效率存储和访问
-
High-Scalability && High-Availability 高扩展性和高可用性
NoSQL数据库的四大分类:
-
键值(key-value)存储
-
列存储
-
文档数据库
-
图形数据库
NoSQL特点:
-
易扩展
-
灵活的数据模型
-
大数据量、高性能
-
高可用
Redis概述
高性能键值对数据库,支持的键值数据类型:
-
字符串类型
-
散列类型
-
列表类型
-
集合类型
-
有序集合类型
Redis的应用场景:
缓存、任务队列、应用排行榜、网站式访问设计、数据过期处理、分布式集群架构中的session分离等。
Redis的数据结构:
key定义的注意点:不要过长或过短、传统的命名规范。
存储String
二进制安全的,存入和获取的数据相同;
Value最多可以容纳的数据长度为512M。
存储String常用命令:
-
赋值:set key value
-
取值:get key
-
先取key后设置value:getset key value
-
删除:del key
-
数值增减:incr 变量名(该变量若未初始化,则先初始化为0,后+1)decr 变量名(该变量若未初始化,则先初始化为0,后-1)
-
扩展命令:
-
incrby key num 给指定的key加num
-
decrby key num 给指定的key减num
-
append key 字符串 给指定的key追加字符串
-
存储Hash
String Key和String Value的map容器;
每一个Hash可以存储4294967295个键值对。
存储Hash常用命令:
-
赋值:hset key field value
-
取值:hget key field [field ...]
-
删除:hdel key field [field ...]
-
删除整个集合:del key
-
增加数字:hincrby key field increment
-
属性是否存在:hexists key field(1:存在,0:不存在)
-
获取所有属性和值:hgetall key
-
获取所有的key:hkeys key
-
获取所有的value:hvals key
存储list
ArrayList使用数组方式;
LinkedList使用双向链接方式;
双向链表中增加、删除数据。
存储list常用命令:
-
两端添加:左lpush key value [value ...]/右rpush key value [value ...]
-
查看列表:lrange key start stop
-
两端弹出:lpop key/rpop key
-
获取列表元素个数:llen key
-
扩展命令:
-
lpushx key value
-
lrem key count value
-
lset key index value
-
linsert ket BEFORE|AFTER pivot value
-
rpoplpush source destination
-
存储Set
和list类型不同的是,Set集合中不允许出现重复的元素;
Set可包含的最大元素数量是4294967295。
存储Set常用命令:
-
添加元素:sadd key member [member ...]
-
删除元素:srem key member [member ...]
-
获得集合中的元素:smembers key/sismember key member
-
集合中的差集运算:sdiff key [key ...]
-
集合中的交集运算:sinter key [key ...]
-
集合中的并集运算:sunion key [key ...]
-
扩展命令:
-
scard key
-
srandmember key [count]
-
sdiffstore destination key [key ...]
-
sinterstore destination key [key ...]
-
存储Set使用场景:
跟踪一些唯一性数据;
用于维护数据对象之间的关联关系。
存储Sorted-Set
Sorted-Set和Set的区别;
Sorted-Set中的成员在集合中的位置是有序的。
存储Sorted-Set常用命令:
-
添加元素:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
-
获得元素:zscore key member
-
删除元素:zrem key member [member ...]
-
范围查询:zrange/zrevrange key start stop [WITHSCORES]
-
扩展命令:
-
zremrangebyscore key min max
-
zcount key min max
-
存储Sorted-Set应用场景:
游戏排名、微博排行榜、构建索引数据等。
Redis的Keys的通用操作
-
查看所有:keys *
-
查看部分:keys pattern
-
删除key:del key [key ...]
-
是否存在:exists key [key ...]
-
重命名:rename key newkey
-
设置过期时间:expire key seconds
-
查看所剩超时时间:ttl key
-
获取指定key类型:type key
Redis特性
-
多数据库:最多可提供16个数据库,下标为0~15,默认连接0数据库。
-
Redis事务:multi开启事务,discard回滚,exec提交事务。
Redis持久化
为了使Redis在重启之后,保证数据不丢失,需要将数据从内存中同步到硬盘中,这个过程称为持久化。
持久化方式:
-
RDB方式:默认方式,在指定的时间间隔内,将内存中的数据集快照写入到磁盘。
-
AOF方式:将以日志的形式,记录服务器所处理的每一个操作,在Redis启动之初,它会读取该文件,再重新构建数据库,以此保证启动后数据的完整。
-
无持久化
-
同时使用RDB和AOF