Redis-1

安装redis

  1. 下载redis安装包并解压

    # 下载,最好将redis-6.0.8.tar.gz 移动到/opt目录下
    wget https://download.redis.io/releases/redis-6.0.8.tar.gz
    # 解压
    tar -zxvf redis-6.8.8.tar.gz
    
  2. 安装gcc编译器(编译器需要5.3版本以上)

    yum install gcc-c++ -y
    #如果不是5.3版本需要升级到 5.3及以上版本
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    scl enable devtoolset-9 bash
    
  3. 编译

    #进入redis目录
    cd redis-6.0.8
    #编译
    make
    
  4. 编译完成添加环境变量

    #该命令会在/usr/local/bin创建环境变量这样可以在任意目录执行redis命令
    #redis-benchmark  redis-check-rdb  redis-sentinel
    #redis-check-aof  redis-cli        redis-server
    make install
    
  5. 启动

    #前台启动关闭终端后关闭
    redis-server
    #后台启动关闭终端后还在运行
    redis-server &
    #指定配置文件启动
    redis-server redis.conf &
    
  6. 关闭

    • 第一种方法

      #通过redis命令
      redis-cli shutdown
      
    • 第二种方法(强行关闭容易丢失数据)

      #查看redis pid
      ps -ef|grep redis
      #关闭pid
      kill -9 pid
      
  7. 设置开机自启

    • 切换到/lib/systemd/system/目录,创建redis.service文件。命令如下:

      cd /lib/systemd/system/
      vim redis.service
      
    • 文件内容如下

      [Unit]
      Description=redis-server
      After=network.target
      
      [Service]
      Type=forking
      # ExecStart需要按照实际情况修改成自己的地址
      ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
      PrivateTmp=true
      
      [Install]
      WantedBy=multi-user.target
      
    • 设置开启自动启动

      # 开机自动启动
      systemctl enable redis.service
      # 启动redis服务
      systemctl start redis.service
      # 查看服务状态
      systemctl status redis.service
      # 停止服务
      systemctl stop redis.service
      # 取消开机自动启动(卸载服务)
      systemctl disabled redis.service
      

使用

#默认连接本机127.0.0.1的6379端口上的redis服务
redis-cli
#连接本机指定端口上的redis服务
redis-cli -p 6380
#连接指定ip主机上的指定端口的redis服务
redis-cli -h ip地址 -p
#退出客户端
exit
#查看redis统计信息
info
#查看某个信息段 info 信息段
info Replication  #查看集群信息
#测试redis性能
redis-benchmark
#查看redis服务是否正常,正常返回pong
ping 
  • redis的数据库实例作用类似于mysql的数据库实例,redis中的数据库实例只能由redis服务来创建和维护,开发人员不能修改和自行创建数据库实例。默认情况下redis服务会自动创建16个数据库实例。从0到15,使用时通过编号来使用数据库,可以通过配置文件来指定redis自动创建的数据库个数。redis数据库实例本身占用的存储空间很小。所以不会造成存储空间的太多浪费。默认情况下,redis客户端连接的是0号数据库。

  • 使用select index 1切换到1号库

  • 查看当前库里有多少条数据dbsize

  • 查看当前库中所有的key keys *

  • 清空当前数据库实例 flushbdb 清空所有数据库实例flushall慎重使用

  • 查看redis中的配置信息 config get * 查看指定项配置信息如config get port查看端口号信息

Redis的五种数据结构

1.string字符串:单key:单value 如 username:zhangsan age:20

2.list列表:单key:多有序value 如 numbers:1,2,3,4 (跟放的顺序有关系)

3.set集合:单key:多无序value 如 city:bj sh cq tj

4.pojo对象:单key:对象(属性+值)如 student:name:zhangsan,age:20

5.zset:单key:多有序value 跟list的区别在于放的顺序,它在于参考值顺序

Redis的常用操作命令
  1. 有关key的操作命令

    #查看数据库中的key
    #keys pattern 通配符 匹配0个或者多个字符
    #*:匹配0个或者多个字符
    #?:匹配1个字符
    #[]:匹配[]里边的1个字符
    keys * #查看所有的key
    keys k* #查看所有k开头的key
    keys h*o #查看所有h开头o结尾的key
    keys h?o #查看数据库中所有以h开头、以o结尾的、并且中间只有一个字符的。
    keys h[abc]llo #查看数据库中以h开头以llo结尾,并且h后边只能取abc中的一个字符
    
  2. 判断key在数据库中是否存在

    exists key #如果存在返回1;否则返回0
    exists key [key key ...] #判断多个key是否存在,返回存在key的个数
    
  3. 移动指定key到指定的库

    move key index # move k1 2 把k1移动到3号库中
    
  4. 查看指定key的剩余生存时间

    ttl k1 #如果key不存在则返回-2,如果key没有设置生存时间,返回-1,会一直存在,设置最大生存时间后返回多少秒
    
  5. 设置key的最大生存时间

    expire key seconds #设置单位为秒
    
  6. 查看key是那种数据结构

    type k1 #查看k1的数据类型
    
  7. 重命名key

    rename hello k2 #重命名hello为k2
    
  8. 删除key 返回实际删除key的数量

    del key #删除单个key
    del k1 k2 #删除多个key
    

redis中string类型数据的操作命令

1.将string类型的数据保存到redis中

set key value # set 键 值
set name zhangsan
set age 20
#如果key已经存在,则后路的value会把前面的覆盖掉

2.获取string类型数据

get key 
get name
get age

3.追加字符串

set phone 1366 #假如之前value是这样
append phone 888 #返回追加之后的字符串长度,如果key不存在则新创建一个key

4.获取字符串数据的长度

strlen phone #获取key为phone字符串的长度

5.将字符串数值进行加1运算

incr key #返回加一后的数据
#如果key不存在,首先设置一个key,值初始化为0,然后进行incr运算
#要求key对应的value必须为数值,否则报错

6.将字符串数值进行减1运算

incr key #返回减一后的数据

7.将字符串数值进行加offset运算

incrby age 10 #incrby key offset 将年龄加10

8.将字符串数值进行减offset运算

decrby age 10 #incrby key offset 将年龄减10

9.截取子字符串,获取字符串中的子字符串

getrange key startIndex endIndex #左右都包含
#下标正数表示从左到右计数,下标负数表示从右到左计数,从-1开始,最右边的一个字符下标是-1

10.改变截取后的字符串

setrange key startIndex value #用value覆盖从下标为startIndex开始的字符串

11.设置字符串数据的同时,设置它最大生命周期

setex key seconds value 

12.设置key value,当key不存在才会设置,如果key存在则不会设置

setnx key value

13.批量设置mset 键1 值1 键2 值2...

mset k1 v1 k2 v2

14.批量设置并检查key是否存在,如果有一个key存在则设置不成功

msetnx key1 value1 key2 value2 ...

15.获取多个值

mget k1 k2 k3 ...
posted @   白黑黑  阅读(23)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示