redis常用命令笔记

文章详细介绍了Redis的安装步骤,包括Linux环境下的解压、编译、安装以及配置文件修改。还讲解了Redis的常用命令,如启动、停止服务,以及快照和AOF持久化机制。此外,提到了Redis的PHP扩展安装方法,分别展示了Windows和Linux下的操作。文章还涉及主从复制配置和事务操作,以及锁的使用场景,确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis常用命令笔记

1、解压redis安装包

命令:tar -zxvf redis-6.2.7.tar.gz

2、编译

命令:make

3、指定安装路径

命令:make PREFIX=/usr/local/redis install

4、复制配置文件到安装路径

命令:cp redis.conf /usr/local/redis/

5、修改redis配置文件

命令:vim redis.conf
在这里插入图片描述

6、文件中显示行号

命令::set nu

7、修改 daemonize no 让redis在后台运行,不占据当前终端

命令:daemonize yes
在这里插入图片描述

8、启动redis服务

命令:./redis-server …/redis.conf
在这里插入图片描述

9、查看redis端口 检查是否启动成功

命令:netstat -tunpl | grep 6379
在这里插入图片描述

10、连接本地的redis服务

命令:./redis-cli
在这里插入图片描述

11、关闭redis服务

命令:pkill redis-server
在这里插入图片描述

12、安全认证

修改配置文件:vim redis.conf
去掉文件前面注释:requirepass 123456
在这里插入图片描述
输入登录密码:auth 123456
在这里插入图片描述

13、redis的PHP扩展安装

下载地址:http://pecl.php.net/package/redis
版本选择:__phpinfo();__查看PHP版本信息

  1. PHP Version 7.4.28
  2. Architecture x64
  3. PHP Extension Build API20190902,TS,VC15
14、Windows下安装扩展
  1. php_redis.dll 复制到 C:\wamp\bin\php7\ext(这里是我自己的PHP安装路径)
  2. extension=php_redis.dll 修改PHP配置文件,引入扩展
  3. 重启一下nginx 使用phpinfo();再次查看
15、Linux下安装扩展

下载地址:http://www.redis.cn/
选择客户端;选择PHP
安装解压缩工具:yum -y install unzip zip
解压缩扩展文件:unzip phpredis-develop.zip
进入解压后的文件夹:cd phpredis-develop
在这里插入图片描述
在当前目录生成一个配置文件:/usr/bin/phpize
在这里插入图片描述
指定PHP的路径:./configure --with-php-config=/usr/bin/php-config
在这里插入图片描述
生成一个扩展文件:make && make install
在这里插入图片描述
编译后测试:make test
在这里插入图片描述
修改PHP配置文件:vim /etc/opt/remi/php74/php.ini
增加该配置:extension=/usr/lib64/php/modules/redis.so
杀掉进程:pkill php-fpm
重启PHP服务:/opt/remi/php74/root/usr/sbin/php-fpm

16、快照持久化配置

快照持久化的文件名字为 dump.rdb
修改配置文件:vim /usr/local/redis/redis.conf

  1. save 3600 1
  2. save 300 100
  3. save 60 10000
    解释:3600秒内超过1个key被修改 就发起快照保存
    在这里插入图片描述
    启动aof持久化方式,将用户执行的增删改‘命令’备份到文件中,还原时重新执行一遍命令
  4. appendonly yes
  5. appendfilename "appendonly.aof"
  6. 两秒钟写入磁盘一次 appendfsync everysec
    在这里插入图片描述
    以上两种方式都开启,会以aof为准
    aof持久化优化 文件重写 优化文件大小 合并重复或多余的命令
  7. 文件大小比上次重写增长了100%时重写 auto-aof-rewrite-percentage 100
  8. 文件超过64M时重写 auto-aof-rewrite-min-size 64mb
    在这里插入图片描述
    手动执行重写操作命令:bgrewriteaof
    修改允许外网访问redis客户端
  9. protected-mode no
  10. 这一行屏蔽掉 bind 127.0.0.1 -::1
    在这里插入图片描述
17、redis基本使用命令
  1. 查看所有键:keys *
  2. 判断键是否存在:exists name 1代表存在 0代表不存在
  3. 删除指定键:del name 1代表删除成功
  4. 设置键的过期时间10秒:expire name 10
  5. 返回一个键剩余多久失效:ttl name -1表示永久有效
  6. 返回键的类型:type name
  7. 切换到1号数据库:select 1 默认有0-15号数据库
  8. 返回当前数据库中键的个数:dbsize
  9. 手动保存快照 做持久化:bgsave
  10. 清空键:flushdb
18、字符串类型(string)
  1. 设置键值对:set name xiaolan
  2. 通过键获取值:get name
  3. 设置键值 失效时间10秒 仅键不存在时能设置成功:set bigname xiaohong ex 10 nx
  4. 同时设置多个键值:mset name xiaolan sex nan 该设置具备原子性
  5. 给键设置为字符串类型 指定生存时间10秒:setex sex 10 nv
  6. 键不存在可设置:setnx sex nv 成功返回1 失败返回0
  7. 批量获取键值:mget name sex
  8. 获取长度:strlen sex
  9. 返回旧值 设置新值:getset sex nan
  10. 加一操作:incr sex
  11. 指定增加的数量:incrby sex 3
  12. 减一操作:decr sex
  13. 指定减少的数量:decrby sex 3
19、哈希类型(hash)

里面可以存多个键值

  1. 往h1中加入单个键值:hset h1 name xiaohong
  2. 查看h1中name的值:hget h1 name
  3. 设置多个键值:hmset userid name xiaolan age 12
  4. 获取多个值:hmget userid name age
  5. 获取哈希的全部键值:hgetall userid
  6. 删除某一个值:hdel h1 age
20、链表类型(list)

左面头部 右面尾部 可以当做栈或队列使用

  1. 链表头添加元素:lpush userlist xiaolan
  2. 索引方式返回链表全部数据:lrange userlist 0 -1
  3. 链表插入元素:linsert userlist before xiaolan xiaohei
  4. 修改链表某个下标的指定元素:lset userlist 2 xiaofen
  5. 返回链表指定下标的元素:lindex userlist 2
  6. 从链表尾部添加元素:rpush userlist xiaolan
  7. 返回链表长度:llen userlist
  8. 从链表头部弹出元素并删除:lpop userlist
  9. 删除一个对应元素:lrem userlist -1 xiaohei 正数表示从前往后找 负数从后往前找 零表示全删
  10. 保留指定范围的元素:ltrim userlist 1 2
  11. 从链表尾部弹出元素并删除:rpop userlist

(brpop是rpop的阻塞模式) 语法结构:BRPOP key [key …] timeout 弹出列表尾部第一个元素并返回存储它的key,要设置一个超时时间。

21、集合类型(set)

数据是无序且唯一的

  1. 往集合中添加元素:sadd userset xiaolan xiaohong 可添加多个
  2. 获取集合中的元素:smembers userset
  3. 集合差集:sdiff userset usersetname 集合1中存在 集合2中不存在
  4. 集合交集:sinter userset usersetname
  5. 集合并集:sunion userset usersetname
  6. 获取集合中元素的个数:scard userset
22、有序集合(zset)

数据是唯一的

  1. 往集合中添加元素并指定序号:zadd userzset 2 xiaohong 1 xiaolan 3 xiaohei
  2. 添加元素 元素存在则更新顺序:zadd userzset 2 xiaohei
  3. 索引返回集合全部元素 并列出序号:zrange userzset 0 -1 withscores 升序
  4. 索引返回集合全部元素:zrevrange userzset 0 -1 降序
  5. 根据下标范围删除元素:zremrangebyrank userzset 0 2
  6. 返回集合中元素的个数:zcard userzset
  7. 返回指定元素的序号:zscore userzset xiaofen
23、redis主从复制配置

主服务器配置:

  1. 修改外网访问redis客户端
  2. protected-mode yes 改为 protected-mode no
  3. bind 127.0.0.1 -::1 这一行屏蔽掉

从服务器配置:

  1. slaveof 192.168.65.101 6379 配置主服务器IP和端口
  2. masterauth 123456 配置主服务器密码
  3. slave-read-only yes 从服务器的只读模式 默认就开启了
  4. info replication 从服务器检查配置是否正确
24、redis事务操作
  1. 给小白100块:set xiaobai 100
  2. 给小黑500块:set xiaohei 500
  3. 开启事务:multi
  4. 小白减去50块:decrby xiaobai 50 此操作已加入队列 还没有执行
  5. 小黑加上50块:incrby xiaohei 50
  6. 取消事务:discard 不会去执行队列中的事务了
  7. 提交事务:exec 注意:提交事务时 如有语法错误 会自动取消事务,用法错误将不会自动取消事务 提交会成功一半
25、锁操作使用场景

客户机A

  1. 假设抢票只剩一张:set ticket 1
  2. 售价100元:set money 100
  3. 开启事务:multi
  4. 票减一:decr ticket
  5. 钱减100:decrby money 100

客户机B
客户端B把最后一张票买去了:decr ticket

客户机A
就会出现票数不够的 负数情况:exec

解决方法:
watch 命令可以监控一个或多个键 一旦其中一个键被修改或删除 之后的事务就不会执行 监控一直到 exec 命令

  1. 监控剩余票数:watch ticket
  2. 开启事务:multi
  3. decr ticket
  4. 提交时如果监控值发生改变 则会自动取消事务:exec
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小红打小蓝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值