Redis-5.x

第1章 关系型与非关系型

关系型: mysql oracle
非关系型:redis mongo ES

第2章 Redis重要特性 AK47

1.速度快
c语言写的
代码优雅
单线程架构
2.支持多种数据结构
字符串,哈希,列表,集合,有序集合,地理位置
3.丰富的功能
天然计数器
健过期功能
消息队列
4.支持客户端语言多
php,java,python
5.数据持久化
所有的数据都运行在内存中
支持2种格式持久化数据AOF RDB AOF&RDB
6.自带多种高可用架构
主从
哨兵
集群

第3章 redis应用场景

1.缓存-键过期时间
把session会话存在redis,过期删除
缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql,然后回写给redis
商城优惠卷过期时间
2.排行榜-列表&有序集合
热度/点击数排行榜
直播间礼物积分排行
3.计数器-天然支持计数器
帖子浏览数
视频播放数
评论数
点赞/踩
4.社交网络-集合
粉丝
共同好友
兴趣爱好
标签
5.消息队列-发布订阅
配合ELK缓存收集来的日志

第4章 Redis安装部署

1.redis官网

https://redis.io/

2.版本选择

2.x very old
3.x redis-cluster
4.x 混合持久化
5.x 新增加了流处理类型 最新稳定版

3.规划目录

/data/soft 下载目录
/opt/redis_6379/{conf,logs,pid} 安装目录,日志目录,pid目录,配置目录
/data/redis_6379/ 数据目录

4.安装命令

mkdir /data/soft -p
cd /data/soft
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar xf redis-5.0.7.tar.gz -C /opt/
ln -s /opt/redis-5.0.7 /opt/redis
cd /opt/redis
make
make install

5.配置文件

mkdir -p /opt/redis_6379/{conf,pid,logs}
mkdir -p /data/redis_6379
cat >/opt/redis_6379/conf/redis_6379.conf<< EOF
daemonize yes
bind 127.0.0.1 10.0.0.51
port 6379
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
EOF

6.启动命令

redis-server /opt/redis_6379/conf/redis_6379.conf

7.检查

ps -ef|grep redis
netstat -lntup|grep 6379

8.连接redis终端

[root@db01 ~]# redis-cli
127.0.0.1:6379>
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
“v1”
127.0.0.1:6379>

9.关闭命令

kill
pkill
redis-cli

SHUTDOWN

  • redis-cli shutdown

10.system启动配置

groupadd -g 1000 redis
useradd -u 1000 -g 1000 -M -s /sbin/nologin
chown -R redis:redis /data/redis*
chown -R redis:redis /opt/redis*
cat >/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/redis /opt/redis_6379/conf/redis_6379.conf --supervised systemd
ExecStop=/usr/local/bin/redis-cli -h $(ifconfig eth0|awk ‘NR==2{print $2}’) -p 6379 shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start redis

第5章 Redis全局命令

全局命令是指对所有数据类型都通用的命令

0.redis数据格式

key:value
键:值

1.写入测试key

set k1 v1
set k2 v2
set k3 v3

2.查看所有的key

!!!危险命令!!!此操作未满30岁禁止请在家人的看管下执行

keys *

3.查看有多少个key

DBSIZE

4.查看某个Key是否存在

EXISTS k1

状态码:
0 表示这个key不存在
1 表示这个key存在
N 表示存在N个key

5.删除key

DEL k1
DEL k1 k2

状态码:
0 表示这个key不存在
1 表示这个key存在,并且删除成功了
N 表示N个key存在,并且删除成功了N个key

6.键过期

设置过期时间

EXPIRE k1 10

状态码:
0 这个key不存在
1 这个key存在,并且设置过期时间成功
查看keys是否过期

TTL k1

状态码:
-1 这个key存在,并且没有设定存活周期,永不过期
-2 这个key不存在
N 这个key存在,并且在N秒后过期
取消过期时间:

第一种方法:
PERSIST k1

第二种方法:
set k1 v1

结论:
过期后的key会被直接删除

第6章 字符串操作

1.设置一个key

set k1 v1

2.查看一个key

get k1

3.设置多个key

MSET k1 v1 k2 v2 k3 v3 k4 v4

4.查看多个key

MGET k1 k2 k3 k4

5.天然计数器

加1:
SET k1 1
INCR k1
GET k1

加N:
INCRBY k1 100

减1:
INCRBY k1 -1

减N:
INCRBY k1 -100

第7章 列表操作

1.插入列表

LPUSH: 从列表左侧插入数据
RPUSH: 从列表右侧插入数据

2.查看列表长度

LLEN list1

3.查看列表内容

LRANGE list1 0 -1

4.删除列表元素

LPOP: 从列表左边删除一个元素
RPOP: 从列表右边删除一个元素

LPOP list1
RPOP list1

5.删除整个列表

DEL list1

第8章 hash操作

1.mysql数据如何缓存到redis

mysql存储格式:
user
id name job age
1 bobo IT 28
2 json py 25
3 hao bug 26

hash类型存储格式:
key field value field value
user:1 name bobo job IT age 28
user:2 name json job py age 25
user:3 name hao job bug age 26

2.创建一个Hash数据

HMSET user:1 name bobo job IT age 28
HMSET user:2 name json job py age 29
HMSET user:3 name hao job bug age 19

3.查看hash里指定的值

select name from user where id =1 ;

HMGET user:1 name
HMGET user:1 name job age

4.查看Hash里所有的值

select * from user where id =1 ;

HGETALL user:1

第9章 集合操作 set

1.创建集合

SADD set1 1 2 3
SADD set2 1 3 5 7

2.查看集合成员

SMEMBERS set1
SMEMBERS set2

3.查看集合的交集

127.0.0.1:6379> SINTER set1 set2

  1. “1”
  2. “3”

4.查看集合的并集

127.0.0.1:6379> SUNION set1 set2

  1. “1”
  2. “2”
  3. “3”
  4. “5”
  5. “7”

5.查看集合的差集

127.0.0.1:6379> SDIFF set1 set2

  1. “2”

127.0.0.1:6379> SDIFF set2 set1

  1. “5”
  2. “7”

6.删除一个成员

SREM set1 1

6.注意

集合不允许出现重复的值,自动去重

第10章 有序集合操作

1.添加成员

ZADD SZ3 100 json
ZADD SZ3 90 bobo
ZADD SZ3 99 xiaocancan
ZADD SZ3 98 bughao

2.计算成员个数

ZCARD SZ3

3.计算某个成员分数

ZSCORE SZ3 json

4.按照降序查看成员名次:

ZRANK SZ3 json
ZRANK SZ3 bobo

5.按照升序查看成员名次:

ZREVRANK SZ3 json
ZREVRANK SZ3 bobo

6.删除成员

ZREM SZ3 json

7.增加成员分数

ZINCRBY SZ3 2 xiaocancan
ZSCORE SZ3 xiaocancan

8.返回指定排名范围的成员

ZRANGE SZ3 0 3
ZRANGE SZ3 0 3 WITHSCORES

9.返回指定分数范围的成员

ZRANGEBYSCORE SZ3 95 100
ZRANGEBYSCORE SZ3 95 100 WITHSCORES

10.返回指定分数范围的成员的个数

ZCOUNT SZ3 90 110

第11章 持久化

在这里插入图片描述
RDB流程图
在这里插入图片描述
AOF流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值