百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

测试开发干货之redis操作,超哥带你继续搞事(二)

mhr18 2024-10-26 10:49 17 浏览 0 评论


目录

一、 简介redis

二、 安装redis

1. Window安装

2. Linux 源码安装

3. Ubuntu apt 命令安装

三、 配置redis

1. 开启远程访问

四、 启动redis

1. 直接启动

2. 通过指定配置文件启动

五、 redis支持的数据类型

六、 操作redis

1. 连接redis

a) 通过redis.Redis连接

b) 通过redis连接池连接

2. redis基本命令 String

3. redis基本命令 hash

4. redis基本命令 list

5. redis基本命令 set

6. redis基本命令有序set

7. 其他常用操作




阅读之前先点击关注,测试开发干货持续更新,否则你只能看这一篇咯

上次给大家讲到安装redis,和启动,今天我们继续讲后面的精彩内容,少废话,开搞。


三、配置redis

1. 开启远程访问


注意:redis默认只允许本地访问,要使redis可以远程访问可以修改redis.conf

打开redis.conf文件在NETWORK部分有说明,找到

bind127.0.0.1

该行加上注释#,改成:

#bind127.0.0.1

即可以使所有的ip访问redis,若是想指定多个ip访问,但并不是全部的ip访问,可以采用bind ip的方法,如果你的redis版本是3.2以后(查看redis版本:redis-server --version redis-server -v),则还需要修改一个配置,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,在访问redisd时候还是报错

增加以下配置:protected-mode no

以上操作结束后,redis就可以远程访问了

二、 启动redis

1. 直接启动


进入redis安装目录输入以下命令

# 加上‘&’使redis以后台程序方式运行
./redis-server &

查看 redis 是否启动?

# redis-cli

以上命令将打开以下终端:

redis 127.0.0.1:6379>

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

redis 127.0.0.1:6379> ping
PONG

以上说明我们已经成功安装了redis。

2. 通过指定配置文件启动


可以为redis服务启动指定配置文件,例如配置为/etc/redis/6379.conf,进入redis根目录,输入命令:

./redis-server /etc/redis/6379.conf

#如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:

redis-cli -p 6380


四、 redis支持的数据类型


redis支持5种数据类型,分别有:

string(字符串),

hash(哈希),

list(列表),

set(集合)

zset(sortedset:有序集合)

注意:不同的数据类型使用的命令不同,接下来咱们就挨个看下每一种数据类型的常用操作命令。


五、 操作redis

1. 连接redis

a) 通过redis.Redis连接

redis提供两个类Redis和StrictRedis,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。前提:先具备redis数据库服务器地址,再用命令安装好redis操作包,命令:

pip install redis

实例:

#1-导入数据库操作包#!
import redis
#2-创建数据库连接对象
#host-redis服务器地址,port-默认端口,db默认第一个数据库0,连接redis,
#加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。
r =redis.Redis(host='192.168.0.110', port=6379,db=0, decode_responses=True)
#3-操作数据库语句
#添加key:name,value:zhangsanr.set('name', 'zhangsan')#获取key:name的值
print (r.get('name'))
#4-因为redis连接对象是再连接池内的,所以不需要我们手动关闭

b) 通过redis连接池连接

redis.py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池

#!/usr/bin/envpython# -*- coding:utf-8 -*-
importredispool = redis.ConnectionPool(host='192.168.0.110', port=6379)
r =redis.Redis(connection_pool=pool)
#单个字符串操作
r.set('name', 'zhangsan')   #添加
print(r.get('name'))   #获取
#多个字符串操作##### 多个string
student= {    'name': 'zeng',    'age': '22'}
result1= client.mset(student)
print(result1)  
#Truestu = client.mget(['name', 'age'])
print(stu)  
# 输出:[b'zeng', b'22']##### 删除操作
d =client.delete('name', 'age')
print(d) 
# 2
result= client.get('name')
print(result)  # None

以上两种方法都可以连接使用redis,两种方法各有千秋,大家可以根据自己的实际情况选择。


2. redis基本命令 String

set(name, value, ex=None, px=None,nx=False, xx=False)

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

1. ex,过期时间(秒) 这里过期时间是3秒,3秒后p,键food的值就变成None

2.px,过期时间(豪秒) 这里过期时间是3毫秒,3毫秒后,键foo的值就变成None

3.nx,如果设置为True,则只有name不存在时,当前set操作才执行 (新建)

import redis

pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
print(r.set('fruit','watermelon', nx=True))    # True--不存在
# 如果键fruit不存在,那么输出是True;如果键fruit已经存在,输出是None

4.xx,如果设置为True,则只有name存在时,当前set操作才执行 (修改)

print((r.set('fruit','watermelon', xx=True)))   # True--已经存在
# 如果键fruit已经存在,那么输出是True;如果键fruit不存在,输出是None

本期redis干货先分享到这里,咱们下次继续分享redis剩下的部分,记得关注不迷路,下次还能找到我!

功能测试想要转型测试开发请联系:chneghaokeji666(wx哦)

真实案例:

一个月薪8K的北漂小姑娘,逆袭之路!

功能测试转型测试开发课程介绍

一个专科小姐姐8k薪水,学完涨薪多少?就像做梦

5.18日收到3个offer,提升前12K,你猜提升后offer多少K?

相关推荐

京东大佬问我,每天新增100w订单数据的分库分表方案

京东大佬问我,每天新增100w订单数据的分库分表方案嗯,用户问的是高并发订单系统的分库分表方案,每天新增100万订单。首先,我得理解需求。每天100万订单,那每秒大概是多少呢?算一下,100万除以86...

MySQL 内存使用构成解析与优化实践

在为HULK平台的MySQL提供运维服务过程中,我们常常接到用户反馈:“MySQL内存使用率过高”。尤其在业务高峰期,监控中内存占用持续增长,即便数据库运行正常,仍让人怀疑是否存在异常,甚至...

阿里云国际站:怎样计算内存优化型需求?

本文由【云老大】TG@yunlaoda360撰写一、内存优化型实例的核心价值内存优化型ECS实例专为数据密集型场景设计,具有以下核心优势:高内存配比:内存与CPU比例可达1:8(如ecs.re6....

MySQL大数据量处理常用解决方案

1、读写分离读写分离,将数据库的读写操作分开,比如让性能比较好的服务器去做写操作,性能一般的服务器做读操作。写入或更新操作频繁可以借助MQ,进行顺序写入或更新。2、分库分表分库分表是最常规有效的一种大...

1024程序员节 花了三个小时调试 集合近50种常用小工具 开源项目

开篇1024是程序员节了,本来我说看个开源项目花半个小时调试之前看的一个不错的开源项目,一个日常开发常常使用的工具集,结果花了我三个小时,开源作者的开源项目中缺少一些文件,我一个个在网上找的,好多坑...

免费全开源,功能强大的多连接数据库管理工具!-DbGate

DBGate是一个强大且易于使用的开源数据库管理工具,它提供了一个统一的Web界面,让你能够轻松地访问和管理多种类型的数据库。无论你是开发者、数据分析师还是DBA,DBGate都能帮助你提升工作效率...

10个最佳的开源免费的酒店系统,接私活创业拿来改改
  • 10个最佳的开源免费的酒店系统,接私活创业拿来改改
  • 10个最佳的开源免费的酒店系统,接私活创业拿来改改
  • 10个最佳的开源免费的酒店系统,接私活创业拿来改改
  • 10个最佳的开源免费的酒店系统,接私活创业拿来改改
使用operator部署Prometheus

一、介绍Operator是CoreOS公司开发,用于扩展kubernetesAPI或特定应用程序的控制器,它用来创建、配置、管理复杂的有状态应用,例如数据库,监控系统。其中Prometheus-Op...

java学习总结

SpringBoot简介https://spring.io/guideshttp://www.spring4all.com/article/246http://www.spring4all.com/a...

Swoole难上手?从EasySwoole开始

前言有些童鞋感觉对Swoole不从下手,也不知在什么业务上使用它,看它这么火却学不会也是挺让人捉急的一件事情。Swoole:面向生产环境的PHP异步网络通信引擎啥是异步网络通信?10年架构师领你架...

一款商用品质的开源商城系统(Yii2+Vue2.0+uniapp)

一、项目简介这是一套很成熟的开源商城系统【开店星】,之前推过一次,后台感兴趣的还不少,今天再来详细介绍一下:基于Yii2+Vue2.0+uniapp框架研发,代码质量堪称商用品质,下载安装无门槛,UI...

Yii2中对Composer的使用

如何理解Composer?若使用Composer我们应该先知道这是一个什么东西,主要干什么用的,我们可以把Composer理解为PHP包的管理工具,管理我们用到的Yii2相关的插件。安装Compose...

SpringBoot实现OA自动化办公管理系统源码+代码讲解+开发文档

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的自动化OA办公管理系统,主要实现了日常办公的考勤签到等一些办公基本操作流程的全部功能,系统分普通员工、部门经理、管理员等...

7层架构解密:从UI到基础设施,打造真正可扩展的系统

"我们系统用户量暴增后完全崩溃了!"这是多少工程师的噩梦?选择正确的数据库只是冰山一角,真正的系统扩展性是一场全栈战役。客户端层:用户体验的第一道防线当用户点击你的应用时,0.1秒...

Win11系统下使用Django+Celery异步任务队列以及定时(周期)任务

首先明确一点,celery4.1+的官方文档已经详细说明,该版本之后不需要引入依赖django-celery这个库了,直接用celery本身就可以了,就在去年年初的一篇文章python3.7....

取消回复欢迎 发表评论: