Redis入门-从安装到python调用

Redis

中文文档: http://www.redis.cn/commands.html

命令参考: http://doc.redisfans.com/

Redis是高性能key-value数据库,
Redis是一个开源的内存数据库,可以用作数据库、缓存和消息中间件,支持多种类型的数据类型,如字符串,哈希,列表集合有序集合等

  • 常用命令
/etc/init.d/redis-server stop --> redis停止
/etc/init.d/redis-server start --> 启动
/etc/init.d/redis-server restart --> 重启

redis-cli -h <hostname> -p <port> --> 远程连接redis数据库

redis中:
0. select 1     --> 切换到db1,默认在db0
1. key *        --> 查看所有的redis键
2. type "键"    --> 查看键的数据类型
3. flushdb      --> 清空当前db
4. flushall     --> 清空所有db

redis 安装

官网地址:https://redis.io

$ wget https://download.redis.io/releases/redis-6.0.9.tar.gz
$ tar xzf redis-6.0.9.tar.gz
$ cd redis-6.0.9
$ make
# 下面这条很重要,不执行在运行指定conf,如:redis-server ./redis.conf时会报错
$ cd src && make install

redis 运行

  • 编译好后的redis在src目录下,进入src目录后运行redis-cli
$ cd src
$ redis-cli
  • 查看redis-server运行环境,如果版本不对,需要修改系统环境变量,/usr/bin和/usr/loal/bin下版本不一致
redis-server -v
  • 打开 /etc/profile文件,在最后一行添加
export PATH=$PATH:/your redis path #将当前安装目录追加到系统环境变量 /usr/local/bin
$source /etc/profile #马上生效修改结果

服务器端

  • 服务端命令为redis-server

  • 查看帮助文档

    redis-server --help

  • 推荐使用服务的方式管理redis服务

    • 启动

      sudo redis-server start

    • 停止

      sudo redis-server stop

    • 重启

      sudo redis-server restart

  • 个人习惯

    • 查看redis服务进程

      ps -ef|grep redis

    • 杀死redis服务器

      sudo kill -9 pid

    • 指定加载的配置文件

      sudo redis-server /etc/redis/redis.conf

客户端

  • 客户端的命令为redis-cli

  • 指定ip,port和password

    redis-cli -h yourhost -p yourport -a yourpass
    
  • 查看帮助文档

    redis-cli --help

  • 连接redis

    redis-cli

  • 运行测试命令

    ping

  • 切换数据库

    redis中数据库没有名字,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库

    select n
    
  • redis存储和读取值操作

$ set foo bar
OK
$ get foo
"bar"

Reddis常用配置

  • ip绑定,可同时绑定多个ip

    bind 127.0.0.1
    bind 127.0.0.1 10.10.10.1

  • 端口绑定

    6379

  • 是否以守护进程运行

    daemonize yes

  • 数据文件

    dbfilename dump.rdb

  • 数据文件存储路径

    dir ./

  • 日志文件存储路径

    logfile /var/log/redis/redis-server.log

  • 数据库,默认有16个

    databases 16

  • 密码设置
    • 临时密码,重启后需要重新配置
    config set requirepass yourpass
    
    • 在redis.conf中添加配置密码
    requirepass yourpass
    
    • 授权密码
    auth yourpass
    $./redis-cli -p 端口号 -a yourpass
    

Redis 数据结构

  • redis是key-value的数据结构,每条数据都是一个键值对
  • 键的类型是字符串
  • 值的类型分为五种
    • 字符串 string
    • 哈希 hash
    • 列表 list
    • 集合 set
    • 有序集合 zset

string类型

二进制安全,可以保存图片数据和json格式,数据最大长度是512M

保存
  • 设备键值
set key value
  • 设置键值及过期时间,以秒为单位
setex key seconds value
  • 设置多个键值
mset key1 value1 key2 value2
  • 追加值
append key value
获取
  • 获取值,如不存在返回nil
get key
  • 获取多个键值
mget key1 key2
删除

详见键命令: 删除键及对应值

键命令

  • 查找键,支持正则表达式
keys pattern
  • 查找所有键
keys *
  • 判断键是否存在,存在返回-1,不存在返回0
exists key
  • 查看键值对应的类型
type key
  • 删除键及对应的值
del key1 key2 key3
  • 设置过期时间,以秒为单位
expire key seconds
  • 查看键的有效时间
ttl key

hash类型

  • hash用于存储对象,对象的结构为属性、值
  • 值的类型为string
增加、修改
  • 设置单个属性值
hset key field value
  • 同时设置多个属性
hmset key field1 value1 field2 value2
获取
  • 获取指定键的所有属性
hkeys key
  • 获取一个属性的值
hget key field
  • 获取多个属性的值
hmget key field1 field2
  • 获取所有属性的值
hvals key
删除
  • 删除整个hash键及值,使用del命令
  • 删除属性,属性对应的值会被一起删除
hdel key field1 field2

列表类型

增加
  • 左侧插入数据
lpush key value1 value1
  • 右侧插入数据
rpush key value1 value2
获取
  • 返回列表里指定范围内的元素
    • start,stop为元素的下标索引
    • 索引从左侧开始,第一个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop
设置指定索引位置的元素值
lset key index value
删除
  • 删除指定元素
    • 将列表中前count次出现的值为value的元素移除
      • count>0,从头往尾删除
      • count<0,从尾往头删除
      • count=0,移除所有
lrem key count value

set类型

无序集合

元素为string类型

元素具有唯一性,不重复

集合没有修改操作

增加
  • 增加元素
sadd key member1 member2
获取
  • 返回指定key的所有元素
smembers key
删除
  • 删除指定元素
srem key

zset类型

有序集合,sorted set

元素为string类型

元素具有唯一性,不重复

每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序

没有修改操作

增加
  • 添加
zadd key score1 value1 score2 value2
获取
  • 返回指定范围内的元素
    • start,stop为元素的下标索引
    • 索引从左侧开始,第一个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop
  • 返回score值在min和max之间的成员
zrangebyscore key min max
  • 返回成员member的score值
zscore key member
删除
  • 删除指定元素
zrem key member1 member2
  • 删除指权重在指定范围的元素
zremrangebyscore key min max

Redis与Python

redis包安装

pip install redis

调用模块

  • 引入模块
# 此模块提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供了不同方法,进行交互操作
from redis import *
  • StrictRedis对象方法
sr = StrictRedis(host='localhost',port='6379',db=0)

可简写为:

sr = StrictRedis()

根据不同的类型,拥有不同的实例方法可以调用,与前面的redis命令对应,方法需要的参数与命令的参数一致

string

  • set
  • setex
  • mset
  • append
  • get
  • mget
  • key

keys

  • exists
  • type
  • delete
  • expire
  • getrange
  • ttl
  • hash

  • hset
  • hmset
  • hkeys
  • hget
  • hmget
  • hvals
  • hdel

list

  • lpush
  • rpush
  • linsert
  • lrange
  • lset
  • lrem

set

  • sadd
  • smembers
  • srem

zset

  • zadd
  • zrange
  • zrangebyscore
  • zscore
  • zrem
  • zremrangebyscore
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

seraph_zh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值