1、redis是什么
Redis是一个no sql的数据库
Redis是一个基于键值对的存储系统
no sql 的数据库(非关系型的数据库)
在Redis中简单的说 啥都没有 所有数据 都是基于key-value对来进行存储的
2、redis的特点
1、Redis是基于内存的
2、速度快
3、如果出现了断电 那么内存数据会发生丢失
4、Redis的使用场景 一定是对数据的要求不是严格的
5、Redis的所有存储结构中都是以Key—Value的形式进行存储的
6、提供了五种不同的数据类型来满足不同的开发场景
String Hash List Set Sorted Set
7、Redis中还提供了3中持久化模式来保证数据的持久化(将内存的数据放到硬盘)
8、Redis还提供多种淘汰策略来满足缓存的数据一定是最新的
9、Redis中还提供了大量的命令集、来完成我们开发中的操作
10、Redis从提供了三种架构(主从、哨兵、集群)
3、redis的使用场景
1、做数据缓存(缓存)
2、购物车数据
3、评论的存储
4、抽奖
5、商城中评分
6、最热的商品
7、秒杀
8、好友关注
9、实现session共享
10、分布式锁
4、Linux下redis的安装
1.将redis的安装文件复制到 /usr/local目录下去
cp redis-5.0.7.tar.gz /usr/local/
2.下载redis运行的时候所需要的运行环境
yum install gcc
3.解压redis文件
tar -zxvf redis-5.0.7.tar.gz
4.进入redis的根目录进行编译
cd /redis-5.0.7/
make
5.进入到src目录下安装
cd src
make install
6.创建运行环境的目录和配置文件的目录
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
7.移动配置文件到etc目录下
cp redis.conf /usr/local/redis/etc/
8.将运行命令放到/usr/local/redis/bin目录下去
cp redis-server /usr/local/redis/bin/
cp redis-cli /usr/local/redis/bin/
9.启动redis
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf
./redis-cli
redis-server :redis的服务端的启动程序
redis-cli:redis的客户端的启动程序
5、reids的基本命令
redis默认是16个数据库,下标分别从0-15,默认选中的是 第1个数据库 默认数据存储也是存储到第1个数据库的
key的常用命令
1.keys * :查看当前数据库中存在的键
keys n*:匹配以n开头的键
2.select 数据库的下标(0-15) : 选中某一个数据库
就是选中了第二个数据库:
select 1
3.del key :删除某一条数据
删除成功返回1
4.exists key :判定某一个key是否存在
存在返回1,不存在返回0
5.expire key 过期时间 :设置key的过期时间,过期之后key会被删除
ttl key:查询这个key的剩余时间
过期之后查询剩余时间返回的是-2,表示key不存在
查询返回-1表示该key永久有效
6.move key 数据库索引 :将一个key–value移动到另外一个数据库中去
7.randomkey :随机返回一个key
8.type name :查看key对应的值的数据类型
9.rename name myname :将name重命名为myname,如果myname已存在,会覆盖myname原来的值
renamenx name myname :如果myname不存在,才执行重命名,并返回1;如果myname已存在,则不执行重命名,返回0
String的常用命令
set key value :在数据库中设置一个键值对的数据
get key :获取某一个值
场景:存储对象的数据
如:get user:1:username : 只取用户名
或:
mset user:1:userName xiaobobo user:1:password 123 user:1:count 100
mget user:1:userName user:1:password user:1:count
incr key ;自增,并返回自增之后的值,如不存在会新建(默认值0)再自增
decr key :自减,同上
incrby key 步长 :一次性增加多少,同上
decrby key 步长 :一次性减去多少,同上
strlen key : 返回字符串(值)长度
append key value :若键值对已存在,在值的末尾添加字符串;若key不存在,自动新建(初始化为空串),再执行添加操作。返回操作后字符串(值)的长度
setnx key value:表示的是如果这个key不存在的话 那么就设置这个键值对
主要用于分布式锁上面