redis使用

1. 安装

1.1 为什么要使用redis

  • 支持语言 Redis 支持市面上绝大多数的主流语言,包括 Java、Python、C、C++、Go、Perl、PHP、Ruby、C# 等等
  • 丰富的数据类型 Redis 除了支持典型的 string(字符串)类型,还支持 list(列表)、hash(散列表)、sets(集合) 、sorted set(有序集合)、geo(地理位置)等。
  • 持久化 Redis 将全部的数据存储在内存中,目前通过两种方式实现持久化
  • 性能极高 Redis能读的速度是110000次/s,写的速度是81000次/s,Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。

1.2 安装redis

参考 Redis 安装
安装完以后在 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli

  • 启动 redis
> cd src
> ./redis-server
  • 进入客户端测试
> cd src
> ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

2. 使用桌面管理器

  • 安装 AnotherRedisDesktopManager
  • 在redis安装目录下 /usr/local/redis 修改(查看)配置文件,主要查看(修改)bind protected-mode requirepass port 这几个参数 ,更多参数说明参考 Linux安装部署Redis(超级详细)
  • 根据上面的参数配置AnotherRedisDesktopManager
    在这里插入图片描述
  • 链接成功界面如下
    在这里插入图片描述

3. redis入门使用

3.1 设置数据库

  • 修改配置文件中 databases 参数来设置数据库数量(此处共有16个数据库, index从0到15)
    在这里插入图片描述
  • 使用 SELECT 命令切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值。默认使用0号数据库。不同的数据库可以具有相同名称的key。使用Redis Cluster时,无法使用SELECT命令,因为Redis Cluster仅支持数据库0。对于Redis群集,拥有多个数据库将毫无意义
    在这里插入图片描述

3.2 常用命令

3.2.1 键相关命令

  • DEL key [key] 删除指定的一个或多个 key
  • EXISTS key [key ...] 检查指定的一个或多个 key 是否存在
  • RANDOMKEY 从当前数据库中,随机返回一个 key
  • RENAME key newkey 将 key 改名为 newkey
  • TYPE key 返回指定 key 所储存的值的类型

3.2.2 字符串命令

  • GET key 返回 key 所关联的字符串值
  • GETSET key value 将指定 key 的值设为 value,并返回 key 的旧值
  • MGET key [key ...] 返回指定的一个或多个 key 的值
  • MSET key value [key value ...] 同时设置一个或多个 key-value 对
  • SET key value [EX seconds|PX milliseconds] [NX|XX] 将字符串值 value 关联到 key,同时可以选择是否增加生存时间,也可以设置键是否存在的条件操作
  • SETNX key value 将 key 的值设为 value,当且仅当 key 不存在时,才成功
  • STRLEN key 返回 key 所储存的字符串值的长度

3.2.3 其他指令

其他(如:列表、哈希等)相关命令参考 Redis 列表(Lists)

4. python 使用redis

插入数值
set(key, value, ex=None, px=None, nx=False, xx=False)

  • 在 Redis 中设置值,默认,不存在则创建,存在则修改
  • ex: 过期时间(秒)
  • px: 过期时间(毫秒)
  • nx: 如果设置为True,则只有name不存在时,当前set操作才执行(新插入)
  • xx: 如果设置为True,则只有name存在时,当前set操作才执行(修改)

获取数值

get(key) 获取key对应的值

from redis import StrictRedis, ConnectionPool
import logging

LOG_FORMAT = "%(asctime)s  %(levelname)s  %(message)s"
logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)


def connect_redis(host, password, port, db_index=0, decode_responses=True, charset="UTF8"):
    redis_db = StrictRedis(host, port, db_index, password, decode_responses=decode_responses, charset=charset)
    try:
        connect_success = redis_db.ping()
        if connect_success:
            logging.info(f"redis 连接成功!!! 当前连接db_index={db_index}")
        else:
            logging.error("redis 连接失败!!!")
        return redis_db, connect_success
    except Exception as e:
        logging.error(f"redis 连接出错: {e}")
        return redis_db, False


def setValues(redis_db, set_data):
    '''
    向redis中插入数据
    set_data: dict, 要插入的数据
    '''
    for key, value in set_data.items():
        redis_db.set(key, value)
        

if __name__ == "__main__":
    redis_db, is_success = connect_redis(host="localhost", 
                             port=5000, 
                             password="15ae6c07-e0db-301c", 
                             db_index=8)
    if is_success:
        redis_db.set("how old are you", "18 years old")
        redis_db.set("what's your name", "my name is lihua")
        res = redis_db.get("how old are you")
        res2 = redis_db.get("how are you")
        print(res, res2)

输出

18 years old       None

redis里存的内容
在这里插入图片描述

其他类型的使用参考:Python redis 使用介绍

参考

Redis 基础教程-程序猿笔记
Redis 教程-菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值