liunx篇】 四. Redis简介,安装及常用命令

Redis简介,安装及常用命令

中国加油!武汉加油!

篇幅较长,配合右边目录观看

案例准备
  1. 准备redis-5.0.7.tar.gz
  2. Centos7 阿里云服务器 或 Centos7 虚拟机
  3. 如果是虚拟机可以参考

1. Redis是什么

  1. no sql 的数据库
  2. 基于键值对的存储系统
  3. 非关系型数据库

2. Redis能做什么

  1. 做数据缓存
  2. 购物车数据
  3. 评论的存储
  4. 抽奖
  5. 商场中的评分
  6. 最热的商品
  7. 秒杀
  8. 好友关注
  9. 实现session共享
  10. 分布式锁

3. Redis特点

  1. 是基于内存的
  2. 速度快
  3. 断电后,内存数据会丢失
  4. 应用场景:对数据要求不严格
  5. 存储结构中以key–value的形式进行存储
  6. 提供五种数据类型来满足不同的开发场景
  7. 提供三种持久化模式来保证数据的持久化
  8. 提供多种淘汰策略来满足缓存的数据一定是最新的
  9. 提供了大量的数据集,来完成我们开发中的操作
  10. 提供了三种架构(主从,哨兵,集群)

4. Redis五种数据类型

数据类型描述
String键值对,键是String,值可以是Object类型
Hash键对应的值是键值对
List相当于 一个键对应多个值,类似java中list集合
Set相当于java中的Set集合,一个key对应多个值,且多值没有顺序
Sorted Set一个key对应多个值,但是每个值都有一个得分(默认按分值排序)

在这里插入图片描述

5. Redis安装

5.1 准备redis-5.0.7.tar.gz放入usr/local中

在这里插入图片描述

5.2 下载Redis运行的时候所需要的运行环境(c语言)

yum install gcc

5.3 解压redis-5.0.7.tar.gz

tar -zxvf redis-5.0.7.tar.gz

在这里插入图片描述

5.4 进入Redis的根目录进行编译

cd /usr/local/redis-5.0.7
make

5.5 进入到src目录下进行安装

cd /usr/local/redis-5.0.7/src
make install

5.6 创建运行的命令的目录和配置文件的目录

mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc

5.7 移动配置文件到 /usr/local/redis/etc目录下

cd /usr/local/redis-5.0.7
cp redis.conf /usr/local/redis/etc/

5.8 将运行命令放到 /usr/local/redis/bin目录下去

cd /usr/local/redis-5.0.7/src
cp redis-server /usr/local/redis/bin/
cp redis-cli /usr/local/redis/bin/

redis-server : redis服务端的启动程序
redis-cli : redis客户端的启动程序
客户端启动后,就可以对数据库的数据进行操作

5.9 前台启动Redis

cd /usr/local/redis/bin
./redis-server ../etc/redis.conf
在开一个视图
cd /usr/local/redis/bin
./redis-cli

在这里插入图片描述
在这里插入图片描述

5.10 后台启动Redis,修改redis.conf

cd /usr/local/redis/etc
vim redis.conf
进入直接  /daem 回车 
修改daemonize为yes

在这里插入图片描述
在这里插入图片描述

6. redis常用命令

6.1 key

命令描述备注
key *查看当前数据库中存在的键一般不用,效率低
select 数据库下标选择某个数据库redis默认16个数据库 (0~15)
del key删除某一条数据返回0表示删除失败
exists key判定某一个key是否存在token需要使用,所有缓存的地方都需要使用这个命令
expire key 过期时间设置超时时间 /s可以用在前后分离项目 token设置过期时间
ttl key查看过期时间,过期后自动删除死亡倒计时 使用场景:键如果需要续期 ,-1 表示没有过期时间,-2 表示key不存在
move key 数据库索引将一个key-value移动到另外一个数据库中应用与数据迁移,不常用
randomkey随便获取一个key不常用

6.2 String

命令描述备注
set key value在数据库中设置一个键值对的数据场景:存储对象的数据 set user:1:name wpj
mset k1 v1 k2 v2 k3 v3同时设置多个键多个值mset user:1:name wpj user:1:pwd 123 user:1:token 123
get key根据key在数据库中取出值get user:name 只取用户名
mget k1 v1 k2 v2 k3 v3同时根据多个key在数据库中取出多个值metget user:1:name user:1:pwd user:1:token
incr key自增可以应用于点赞评论转发阅读再看人数; set kongjian:readcount:{日志id} 0; incr kongjian:readcount:日志id
incrby key 值自增值
decr key自减
decrby key 值自减值
setnx key value如果key不存在就设置键值对用于分布式的锁上面

6.3 Hash

命令描述备注
hset 集合名 key value设置集合的键值设置失败还是会把值给覆盖了。应用场景:购物车 (hset cart:用户id 商品id 购买数量)
hget 集合名 key根据键获取集合的键值hget cart:用户id 商品id
hlen 集合名 key获取当前集合中值的数量应用场景:购物车已选中几件商品 (hlen cart:用户id)
hdel 集合名 key删除集合中某一个键应用场景:购物车删除商品 (hdel cart:用户id 商品id)
hincrby 集合名 key 增加的数量给集合中的某个键添加数量应用场景:购物车添加商品数量(hincrby cart:用户id 商品id 添加数量)
hgetall 集合名直接实现全选的功能应用场景:购物车全选 (hgetall cart:用户id)
hexists 集合名 key判断是否有集合hexists cart:用户id 商品id
hkeys 集合名获取集合中所有的键hkeys cart:用户id
hvals 集合名取出当前集合中所有的值hvals cart:用户id
hmset 集合名 k1 v1 k2 v2一次性设置集合中的多个键值(hmset cart k1 v1 k2 v2)(hmset user 1:name wpj 1:pwd 123)
hmget 集合名 k1 k2一次性根据key取出值(hmget cart k1 k2)(hmget user 2:name 2:pwd)

6.4 List

命令描述备注
lpush key value将一个或者多个值 插入到列表的表头弹夹存储方式(lpush mobtech:msg:用户id 消息id)
lpop key移除并返回这个列表的表头同上
rpush key value在列表的表尾添加元素反着来
rpop key从列表的右侧弹出元素同上
lrange key start stop获取List中从start索引到stop索引里的值
blpop key从列表的表头弹出一个元素 如果列表的表头没有元素 那么就阻塞等待blpop key time
brpop key从列表的右侧弹出一个元素 如果没有元素 那么就阻塞等待

6.5 Set

命令描述备注
sadd key value向Set集合中添加一个值应用场景:点赞(防止多次点赞)sadd weixin:like:消息id 用户id;sadd 集合的名字 集合的值
srem key value向Set集合中删除某一个值应用场景:取消点赞 srem weixin:like:信息id 用户id
sismember 键 值检查某一个值是否在这个集合中存在应用场景:检查用户是否点过赞 sismember weixin:like:消息id 用户id
smembers key表示获取这个集合中的所有数据应用场景:获取点赞列表 smembers weixin:like:信息id
scard key获取集合中的数获取点赞的人 scard weixin:like:信息id
srandmember key count从集合中选出count个元素,元素不从key中删除(值是随机的)
spop key count从集合中选中count个元素,元素从集合中删除
sinter key做交集运算
sinterstore desternation key将交集的结果存入新的集合中
sunion key并集运算
sunionstore desternation key将并集的结果存入新的集合中
sdiff key差集运算
adiffstore desternation key将差集的结果存入新的集合中

6.6 Sorted Set

命令描述备注
zadd 集合名 打分 key名向Sorted Set中添加一个数字应用场景:做最热商品或人气商品
zrange 集合名 开始区间 结束区间获取集合某一个区间的值根据打分从小到大进行排序
zincrby 集合名 加分 key名加分zrange good:hot 1000 goodId1
zrevrank 集合名 key查看排名zrevrank good:host goodId1
zrem 集合名 key删除某一条数据zrem good:host goodId1
zscore 集合名 key获取热度zscore good:host goodId1
zcount 集合名 start end获取得分在某一个区间的个数zcount good:host 200 1000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值