2-redis高级-centos上安装redis(编译安装、redis启动)、redis客户端操作、redis使用场景、redis中的通用命令

[1 centos上安装redis](#1 centos上安装redis)
[1.1 编译安装](#1.1 编译安装)
[1.2 redis启动](#1.2 redis启动)
[2 redis客户端操作](#2 redis客户端操作)
[3 redis使用场景](#3 redis使用场景)
[4 通用命令](#4 通用命令)

1 centos上安装redis

python 复制代码
# win 上装redis
# 上线--》centos装了--》详细研究
# docker 装---》配置--》持久化

# 官网看看
	-redis源码 -----》自己编译
    -redis stack----》编译过后的可执行文件
    
    -6.x版本
    
# 咱们刚刚下了几个软件
	-redis-6.2.14
    -reids-7.2.3
    -redis-stack-7.2.3
    
# 我们基于源码---》在不同平台编译成相应平台的可执行文件
	-mac
    -linux
    	-乌班图
        -centos
     -win:是编译不了的
    
# c语言编译工具:gcc

1.1 编译安装

python 复制代码
1.3.1下载安装
#下载
wget https://download.redis.io/releases/redis-6.2.13.tar.gz
#解压
tar -xzf redis-6.2.13.tar.gz
#建立软连接
ln -s redis-6.2.13 redis
cd redis
make&&make install
# make install--->安装---》会在/usr/local/bin/ 放几个可执行文件

#在src目录下可以看到
#redis-server--->redis服务器
#redis-cli---》redis命令行客户端
#redis-sentinel---》sentinel服务器,哨兵
------------------------
#redis-benchmark---》redis性能测试工具
#redis-check-aof--->aof文件修复工具
#redis-check-dump---》rdb文件检查工具

#redis作者对windows维护不好,window自己有安装包



####卸载redis
# 1、查看redis进程;
ps aux|grep redis
# 2、kill掉进程;
kill 进程id
# 3、进入到redis目录
cd /usr/local/
# 4、删除redis对应的文件
rm -f /usr/local/redis/bin/redis*
rm -f /usr/local/bin/redis*
# 5、删除对应的文件
rm -rf redis

1.2 redis启动

python 复制代码
#1 最简启动
redis-server
ps aux|grep redis  #查看进程
# yum install net-tools -y

netstat -antpl|grep redis #查看端口
redis-cli -h ip -p port ping #命令查看




127.0.0.1  localhost  0.0.0.0 有什么区别?
localhost:是个域名---》在操作系统的host文件---》中配置了跟127.0.0.1对应的
127.0.0.1:回环地址---》本地--》只经过网络层就回来了  应用层--》网络--》应用层
192.168.1.64:需要从应用层---》数据链路层---》回到应用层
0.0.0.0:不是一个有效ip,服务监听这个地址--》等同于监听本机网卡所有地址
	127.0.0.1
    192.168.1.64
    
    
#2动态参数启动
redis-server --port 6380 #启动,监听6380端口




###3 配置文件启动
#配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)

#####通过redis-cli连接,输入config get * 可以获得默认配置--》100来对


#在redis目录下创建config目录,copy一个redis.conf文件
mv redis.conf redis.conf.bak  # 后者表示备份

#daemonize--》是否是守护进程启动(no|yes)
#port---》端口号
#logfile--》redis系统日志
#dir--》redis工作目录
配置文件的信息:
'''
daemonize yes #是否以守护进程启动
pidfile /var/run/redis.pid    #进程号的位置,删除
port 6379     #端口号
dir /root/redis/data #工作目录 
logfile redis.log # 日志文件名
bind 0.0.0.0
'''

#在redis目录下新建data目录,用来存放书籍
#启动redis
redis-server ./redis.conf

#查看进程
ps -ef |grep redis |grep 6379
或
netstat -nlp | grep redis
或
ps aux | grep redis

#查看日志
cd data
cat redis.log

2 redis客户端操作

python 复制代码
# 图形化界面---》resp

###客户端连接###
redis-cli -h 127.0.0.1 -p 6379
ping #返回PONG

## 有密码的情况可以两种登陆方式
# 方式一
redis-cli -h 127.0.0.1    -p 6370 -a 123456
# 方式二
先登陆,再通过auth输入密码

## redis-cli进入
CONFIG GET *   一百多对建值
CONFIG SET maxmemory 128M  # 设置最大使用的内存
CONFIG set requirepass 123456  # 设置密码
CONFIG REWRITE  # 保存到配置文件


### redis 入侵
https://cloud.tencent.com/developer/article/1440296
# 避免:
	-运行redis进程的用户不要用root
    -运行redis的用户不允许登录

3 redis使用场景

python 复制代码
# 缓存系统:使用最广泛的就是缓存
# 计数器:网站访问量,转发量,评论数(文章转发,商品销量,单线程模型,不会出现并发问题)
	django--->并发操作数据库---》数据没有错乱--》mysql是一个服务---》兼容并发访问的--》处理了并发安全的问题---》不需要我们从程序端考虑并发安全问题
    redis--》没有锁--》不存在并发安全问题--》redis数据读写是单线程的
# 消息队列:发布订阅,阻塞队列实现(简单的分布式,blpop:阻塞队列,生产者消费者)
	IPC 进程间通信
# 排行榜:有序集合(阅读排行,点赞排行,推荐(销量高的,推荐))
# 社交网络:很多特效跟社交网络匹配,粉丝数,关注数
# 实时系统:垃圾邮件处理系统,布隆过滤器

4 通用命令

python 复制代码
####1-keys 
#打印出所有key
keys * 
#打印出所有以he开头的key
keys he*
#打印出所有以he开头,第三个字母是h到l的范围
keys he[h-l]
#三位长度,以he开头,?表示任意一位
keys he?
#keys命令一般不在生产环境中使用,生产环境key很多,时间复杂度为o(n),用scan命令

####2-dbsize   计算key的总数
dbsize #redis内置了计数器,插入删除值该计数器会更改,所以可以在生产环境使用,时间复杂度是o(1)

###3-exists key 时间复杂度o(1)
#设置a
set a b
#查看a是否存在
exists a
(integer) 1
#存在返回1 不存在返回0


###4-del key  时间复杂度o(1)
删除成功返回1,key不存在返回0


###5-expire key seconds  时间复杂度o(1)
expire name 3 #3s 过期
ttl name  #查看name还有多长时间过期
persist name #去掉name的过期时间


###6-type key  时间复杂度o(1)
type name #查看name类型,返回string




### 7 其他
info命令:内存,cpu,主从相关

client list  正在连接的会话
client kill ip:端口
dbsize  总共有多少个key
flushall  清空所有
flushdb  只清空当前库
select 数字  选择某个库  总共16个库
monitor  记录操作日志,夯住
相关推荐
CJi0NG30 分钟前
【自用】MySQL-多表查询
数据库·mysql
雨落在了我的手上37 分钟前
MySQL数据库基础(12):事务
数据库·mysql
D姐聊门店39 分钟前
门店收银系统断网兜底怎么设计:本地账本、离线续传与日终对账的工程实现
数据库·saas
用户8662978480081 小时前
抓包看 KingbaseES 内部协议?官方给了个现成工具
数据库
wefg11 小时前
【Redis】安装与启动
数据库·redis·缓存
大圣编蚕1 小时前
常见的 Redis 面试题(高频整理)
数据库·redis·缓存
派小心.2 小时前
网站统计采样数据的误差核对
大数据·服务器·前端·数据库·人工智能·小程序·数据分析
龙腾AI白云2 小时前
数字孪生、具身智能、世界模型三者交叉
数据库·人工智能·机器学习·flask·pygame
小猿姐2 小时前
KubeBlocks Enterprise v2.3 发布!
redis·kubernetes·aiops
SelectDB技术团队3 小时前
Apache Doris 基于 Lance 的向量检索深度解析
数据库·数据仓库·数据分析·湖仓一体·apache doris·lakehouse·多模湖仓