首页 > 数据库 >Redis Linux环境 安装,卸载,启动,通用名令,数据结构,字符串类型操作

Redis Linux环境 安装,卸载,启动,通用名令,数据结构,字符串类型操作

时间:2023-04-18 15:01:35浏览次数:35  
标签:名令 name conf Redis redis key Linux 字符串 配置文件

目录

Redis高级

速度快:10w ops(每秒10w读写),数据存在内存中,c语言实现,单线程模型

持久化方案:rdb和aof

多种数据结构:

5大数据结构
BitMaps位图:布隆过滤器 本质是 字符串
HyperLogLog:超小内存唯一值计数,12kb HyperLogLog 本质是 字符串
GEO:地理信息定位 本质是有序集合

支持多种编程语言:基于tcp通信协议,各大编程语言都支持

功能丰富:发布订阅(消息) Lua脚本,事务(pipeline)

简单:源代码几万行,不依赖外部库

主从复制:主服务器和从服务器,主服务器可以同步到从服务器中

高可用和分布式:

2.8版本以后使用redis-sentinel支持高可用
3.0版本以后支持分布式

Linux下安装redis

下载压缩包

wget http://download.redis.io/releases/redis-6.2.9.tar.gz

解压

tar -xzf redis-6.2.9.tar.gz

建立软链接

ln -s redis-6.2.9 redis

编译并安装

make&&make install

可以看到在当前文件夹下的src文件里多了很多执行文件

# 下列需要注意
    redis-server     redis服务器
    redis-cli       redis命令行客户端
    redis-benchmark   redis性能测试工具
    redis-check-aof   aof文件修复工具
    redis-check-rdb   rdb文件检查工具
    redis-sentinel    sentinel服务器,哨兵
    

卸载教程

查看redis进程

ps aux|grep redis

kill掉进程

kill 进程id

进入到redis目录

cd /root/redis   

删除redis对应的文件

rm -f /root/redis/bin/redis*  # 我是编译安装在/root/redis 目录下的
rm -f /usr/local/bin/redis*

删除对应的文件

rm -rf redis

redis启动方式

1.在redis目录下的src文件路径下

redis-server
# 输入完成后 redis服务会夯在那,不要关掉

查看进程方法

ps aux|grep redis

查看端口

netstat -antpl|grep redis # 报错先安装 yum install net-tools -y

2.动态参数启动

redis-serve --port 6379 #启动,监听6379端口

3.配置文件启动

先备份一下redis.conf
mv redis.conf redis.conf.bak # 到redis目录下执行

自己写一个redis.conf

vim redis.conf
daemonize yes
pidfile /var/run/redis.pid
port 6379
dir "/root/redis/data" 
logfile 6379.log

命令解释

daemonizer yes  # 是否守护进程启动 yes/no
port         # 端口
dir         # redis 工作目录
logfile      # redis系统日志文件

创建data文件夹

mkdir data  # 一定要在redis目录下

启动(是在后台运行不会夯在前台)

redis-server redis.conf

客户端连接命令

redis-cli -h 地址 -p 端口  # 连本地直接redis-cli

redis-cli -h 地址 -p 端口 info # 查看当前运行情况及版本
redis-cli -h 地址 -p 端口 ping # 返回PONG 则代表正常运行

连上客户端以后 输入
CONFIG GET * # 可以获取redis的配置信息

配置文件

一共可以查出296对配置文件 ,我们需要关注的

requirepass     # 密码 如果是空 没有密码
bind          # 地址 127.0.0.1 或0.0.0.0
dir          # 工作目录
logfile       # 日志文件 会在工作目录下
daemonize     # 是否已守护进程运行
pidfile      # 放的是进程id
maxmenory     # 可以使用的最大内存
databases     # 设置库的数量
dbfilename    # rdb的持久化方案的存储文件

修改的方法

CONFIG SET requirepass 123456  # 密码修改成123456
注意同步到配置文件内
CONFIG REWRITE  # 同步到redis.conf 里

# 设置密码后下次在连接必须输入密码
1. 连进去 输入 auth 密码
2. 链接时就直接指定密码 redis-cli -a 123456

redis的应用场景

作为缓存使用。
计数器 :网站访问量,转发量,评论数,因为是单线程模型不会出现并发安全问题
消息队列: 发布订阅,阻塞队列实现(简单的分布式,blpop) celery 的消息队列就是用的redis
排行榜: 有序集合(阅读排行,点赞排行,推荐(销量搞高的)) 
社交网络: 粉丝数,关注数
实时系统: 垃圾邮件处理系统,eg:白名单, 我们把能访问的邮箱放入白名单, 没见过的邮箱就可以加到垃圾邮件里。
地理位置信息:附近的人

redis通用命令

keys *    # 打印出所有key
keys he*   # 打印出he开头的key
keys he[h-l]  # 打印出he开头后面第三个字母是h-l范围内的key
keys he?   # 打印出he开头的第一个
dbsize  # 统计总共有多少key
exists key # 是否存在 存在返回1 否则0
expire key 3   # 设置过期时间
ttl key      # 查看过期时间
persist key   # 去掉过期时间
type key  # 查看数据类型

其他命令

info  # 查看内存 cpu 主从相关
client list # 查看正在连接的客户端
client kill ip:port  # 关闭链接
flushall   # 清空所有
flushdb    # 只清空当前库
select 数字  # 选择某个库
monitor    # 记录操作日志 夯在前台

redis数据结构

string类型

raw   二进制
int   数字
embstr 字符串

hash类型

hashtable 
ziplist   # 压缩列表

list列表

linkedlist 
ziplist   # 压缩列表

set 集合

hashtable  
intset

zset

skiplist
ziplist

redis跳跃表

​ redis 有序集合的底层实现

Redis字符串类型操作

字符串key value最大存储不能超过512m般建议100k以内

set name lxj   # 添加 修改
get name      # 获取
del name     # 删除
incr age   # 自增1
decr age   # 自减1
incrby age 10 # 增加10
decrby age 10 # 减去10
set name lxj # 不管是否存在都设置
setnx name lxj # key不存在才设置
set name lxj nx #同上
set name lxj xx # key存在 才设置
mget key1 key2 key3  # 批量获取
mset key1 value1 key2 value2 key3 value3  #批量设置时间
getset name lqznb #设置新值并返回旧值 时间复杂度o(1)
append name 666 #将value追加到旧的value 时间复杂度o(1)
strlen name  #计算字符串长度(注意中文)  时间复杂度o(1)
###6---其他:incrybyfloat,getrange,setrange
increbyfloat age 3.5  #为age自增3.5,传负值表示自减 时间复杂度o(1)
getrange key start end # 取范围内数据
setrange key index value #从指定index开始设置value值  时间复杂度o(1)

redis单线程为什么这么快

存内存操作
非阻塞IO(epoll模型) 自身实现了事件处理,不在网络io上浪费过多时间
避免线程切换和竞态消耗(抢锁)

标签:名令,name,conf,Redis,redis,key,Linux,字符串,配置文件
From: https://www.cnblogs.com/LiaJi/p/17329569.html

相关文章

  • linux——file_operations
    结构体源码[[03.file_operations结构体源码]]![[Pastedimage78.png]]Linux使用file_operations结构访问驱动程序的函数,这个结构的每一个成员的名字都对应着一个调用。Linux的设备驱动程序工作的基本原理用户进程利用在对设备文件进行诸如read/write操作的时候,系统调用通过......
  • linux——I2C驱动
    HKA_S32ISPWriteI2CData(HKA_U8u8I2cDev,HKA_U8u8DevAddr,HKA_U32u32RegAddr,HKA_U32u32RegAddrByteNum,HKA_U32u32Data,HKA_U32u32DataByteNum){intret=0;structi2c_adapter*padap=NULL;structi2c_msgmsg;......
  • linux蚁剑入门到熟悉文档地址整理
    linux蚁剑入门到熟悉文档地址收录蚁剑GetHub地址帮助文档kali安装出现问题的解决方式kali安装记录linuxdebian下载解压后进入文件内,使用root身份执行./AntSword后选择下载运行环境,新建并选择位置即可之后再次./AntSword即可......
  • linux——堆、栈、内存映射
    C的虚拟内存区域划分CodeArea(代码区):程序代码指令、常量字符串,只可读。StaticArea(静态区、全局区):存放全局变量/常量、静态变量/常量。该区域的大小在程序一加载进内存的时候就已固定,但是静态变量的值是可以改的。Heap(堆):由程序员控制,使用malloc/free来操作。(空间最大)Stack(栈......
  • Linux服务器怎么关闭防火墙
    Linux服务器怎么关闭防火墙在很多情况下,防火墙都会组织一些端口号的通讯。比如我们的tomcat,nginx,redis明明安装的没问题,但在外部就是访问不了,那很有可能就是防护墙的原因了。我是艾西,今天跟大家分享下Linux服务器怎么关闭防火墙一、重启后永久性生效:开启:chkconfigiptableson关闭:c......
  • Linux服务器怎么修改系统时间
    Linux服务器怎么修改系统时间linux服务器的系统时间,有的时候会产生误差,导致我们的程序出现一些延迟,或者其他的一些错误,那么怎么修改linux的系统时间呢?我是艾西,今天又是跟linux小白分享小知识的时间具体操作:我们一般使用“date-s”命令来修改Linux系统时间。比如将系统时间设定成......
  • Linux基础
    1、Linux目录结构1.1Linux系统的目录结构是一颗到撞树。Linux只有一个顶级目录,称之为:根目录Windows系统有多个顶级目录,即各个盘符在Linux系统中表示出现在开头的/表示:根目录出现在后面的/表示:层次关系1.2常见目录说明①./bin:存放常用命令(即二进制可执行程序)......
  • Linux服务器如何清除dns缓存
    DNS缓存是一个临时数据库,用于存储已解释的DNS查询信息。换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留域名和相应IP地址的记录。这消除对远程DNS服务器重复查询,并允许你的操作系统或浏览器快速解析网站的域名。但是在某些情况下,例如对网络问题进行故障排除或者在更改D......
  • Linux系统上如何禁用
    Linux系统上如何禁用为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。为了消除这种可能性,机构会限制和监测访问互联网,同时禁用我是艾西,今天我将聊聊三种不同的方法来禁用方法方法方法方法一、伪安装在本方法中,我们往配置文件......
  • telnet远程管理linux主机及Zlib、openssl、openssh升级1
    一、telent远程管理主机1.安装telent服务服务端:yuminstalltelnet-server-y#安装服务端useradddaipasswddai#创建lhj用户,设置lhj密码,密码有规则要求,大小写数字加符号,输2次即可客户端:yuminstalltelnet-y#安装客户端2.测试telent登录客户端:telnet192.......