测试开发干货之redis操作,超哥带你继续搞事(二)
mhr18 2024-10-26 10:49 25 浏览 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?
相关推荐
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
-
在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...
- 第四节 Windows 系统 Docker 安装全指南
-
一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...
- C++ std:shared_ptr自定义allocator引入内存池
-
当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...
- Activiti 8.0.0 发布,业务流程管理与工作流系统
-
Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
-
MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...
- Springboot数据访问(整合Mybatis Plus)
-
Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
-
见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...
- Mybatis入门看这一篇就够了(mybatis快速入门)
-
什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...
- Springboot数据访问(整合druid数据源)
-
Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
-
什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...
- 企业数据库安全管理规范(企业数据库安全管理规范最新版)
-
1.目的为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库...
- Oracle 伪列!这些隐藏用法你都知道吗?
-
在Oracle数据库中,有几位特殊的“成员”——伪列,它们虽然不是表中真实存在的物理列,但却能在数据查询、处理过程中发挥出意想不到的强大作用。今天给大家分享Oracle伪列的使用技巧,无论...
- Oracle 高效处理数据的隐藏神器:临时表妙用
-
各位数据库搬砖人,在Oracle的代码世界里闯荡,处理复杂业务时,是不是总被数据“搅得头大”?今天给大家安利一个超实用的隐藏神器——临时表!当你需要临时存储中间计算结果,又不想污染正式数据表...
- Oracle 数据库查询:多表查询(oracle多表关联查询)
-
一、多表查询基础1.JOIN操作-INNERJOIN:返回两个表中满足连接条件的匹配行,不保留未匹配数据。SELECTa.emp_id,b.dept_nameFROMempl...
- 一文掌握怎么利用Shell+Python实现多数据源的异地备份程序
-
简介:在信息化时代,数据安全和业务连续性已成为企业和个人用户关注的焦点。无论是网站数据、数据库、日志文件,还是用户上传的文档、图片等,数据一旦丢失,损失难以估量。尤其是当数据分布在多个不同的目录、服务...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 如何检查 Linux 服务器是物理服务器还是虚拟服务器?
- 第四节 Windows 系统 Docker 安装全指南
- C++ std:shared_ptr自定义allocator引入内存池
- Activiti 8.0.0 发布,业务流程管理与工作流系统
- MyBatis动态SQL的5种高级玩法,90%的人只用过3种
- Springboot数据访问(整合Mybatis Plus)
- 盘点金州勇士在奥克兰13年的13大球星 满满的全是...
- Mybatis入门看这一篇就够了(mybatis快速入门)
- Springboot数据访问(整合druid数据源)
- Linux 中的 "/etc/profile.d" 目录有什么作用 ?
- 标签列表
-
- oracle位图索引 (74)
- oracle基目录 (50)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (53)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)