Skip to main content

基础使用

基础概念

知识点

  • redis 默认有16个数据库,从0~15
  • 默认使用的是0号数据库

基础语法

持久化

  • aof
  • rdb

主要类型

redis是一个key-value存储系统。

  • 字符串
  • 链表
  • 集合
  • 哈西类型

主要操作

这些操作都是原子性

  • push
  • pop
  • add
  • remove
  • 交集/并集/差集

主从同步

数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

基础使用

下载

# 下载地址
# win版需要自己编译
https://github.com/redis/redis/releases


https://blog.csdn.net/weixin_41674401/article/details/109384667

安装

  • window

win平台的redis需要自己编译

  • linux

    # linux 切换高版本的gcc编译
    yum -y install gcc-c++
    yum -y install centos-release-scl
    yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

    # 临时使用高版本的gcc
    scl enable devtoolset-9 bash

    # 永久使用高版本的gcc
    echo -e “/nsource /opt/rh/devtoolset-9/enable” >>/etc/profile

    make && make install
    tar -zxvf redis-6.0.5.tar.gz
    tar -zxvf redis-6.0.9.tar.gz

    # 进入/usr/local/bin目录就可看到redis
    # 默认编译安装是没有redis.conf的,可以从源目录拷贝过来

启停服务

  • win

    .\redis-sentinel.exe # 启动服务
    ..\redis-cli.exe # 进入redis
    # run.bat
    start "" %~dp0redis-server.exe
  • centos

    # 启动并后台
    ./redis-server &

    # 启动 指定conf
    ./redis-server /usr/local/redis/etc/redis.conf

    # 指定端口等
    ./redis-cli -p 6379
    ./redis-cli -h 127.0.0.1 -p 6379 -a 12345 # 指定参数进入

    # 停止
    ./redis-cli -p 6379
    shutdown
    exit

语言调用

python

./python.exe -m pip install RedisPy
import RedisPy
from redis import StrictRedis
from resis

# 默认连接127.0.0.1:6379
# decode_responses=True 去掉 b 开头
r = StrictRedis(decode_responses=True)

# 显示指定主机、端口号和数据库
r = StrictRedis(host='127.0.0.1', port=6379, db=0,decode_responses=True)

# 增
r.set(ket,val)
r.getset(key,val) - 返回旧键值, 并更新该键
r.setnx(ksey,val) - 如果不存在,则创建, 否则不动
r.setex(name, time, value) - 设置可以对应的值为string类型的value,并指定此键值对应的有效期

r.mset({key:val}) - 设置对象
r.msetnx(mapping) - 键值不存在时才赋值

r.hset(db,key,val) - 设置一个新库,
r.hsetx(db,key,val) - 设置一个新库,
r.hget(db,key) - 搜索对应库内的键
r.hmget(db,keys,*args) - 返回多个键的值

//删
r.delete(key)
r.flushdb() - 清空当前数据库
r.flushall() - 删除所有库

//改
r.rename(okey,nkey) - 重命名
r.move(key,db) - 移动到别的库

//查
r.exists(key) - 判断是否存在
r.type(key) - 判断类型
r.ttl(key) - 获取过期时间, -1 是永不过期

其他编程语言引入

nodejs

// 不用另外安装 types,已经内置
npm install redis