[转帖]redis操作 + StrictRedis使用

redis,操作,strictredis,使用 · 浏览次数 : 0

小编点评

```python try: #创建StrictRedis对象,与redis服务器建/>"; sr = StrictRedis() #添加键name,值为itheima result = sr.set('name','xiaoming') #输出响应结果,如果添加成功则返回True,否则返回False print(result) except Exception as e: print(e) try: #获取键name的值 result = sr.get('name') #输出键的值,如果键不存在则返回None print(result) except Exception as e: print(e) try: #创建StrictRedis对象,与redis服务器建/>"; sr = StrictRedis() #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加 result = sr.set('name','xiaoming') #输出响应结果,如果操作成功则返回True,否则返回False print(result) except Exception as e: print(e) try: #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加 result = sr.set('name','xiaoming') #输出响应结果,如果操作成功则返回True,否则返回False print(result) except Exception as e: print(e) try: #创建StrictRedis对象,与redis服务器建/>"; sr = StrictRedis() #删除键name的值 result = sr.delete('name') #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0 print(result) except Exception as e: print(e) try: #获取所有的键 result = sr.keys() #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表 print(result) except Exception as e: print(e) except Exception as e: print(e) ```

正文

Redis

string类型

  • 字符串类型是 Redis 中最为基础的数据存储类型。
  • 它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据。
  • 如JPEG图像数据或Json对象描述信息等。
  • 在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

set:

#设置键值:
set key value

#设置键为name值为xiaoming的数据
set name xiaoming

 setex:

#设置键值及过期时间,以秒为单位
setex key seconds value

#设置键为aa值为aa过期时间为3秒的数据
setex aa 3 aa

mset:

#设置多个键值
mset key1 value1 key2 value2 ...

#设置键为a1值为python、键为a2值为java、键为a3值为c
mset a1 python a2 java a3 c++

append:

#追加值
append key value

#向键为a1中追加值abc
append a1 abc

get:

#获取:根据键获取值,如果不存在此键则返回nil
get key

#获取键name的值
get name

mget:

#获取多个键获取多个值
mget key1 key2 ...

#获取键a1、a2、a3的值
mget a1 a2 a3

键命令

key:

复制代码
#查找键,参数支持正则表达式
keys pattern

#查看所有键
keys *

#查看名称中包含a的键
keys a*
复制代码

exists

#判断键是否存在,如果存在返回1,不存在返回0
exists key1

#判断键a1是否存在
exists a1

type:

#查看键对应的value的类型
type key

#查看键a1的值类型为redis⽀持的五种类型中的⼀种
type a1

delete:

#删除键及对应的值
del key1 key2...

#删除键a1、a2
del a2 a3

 expire:

#设置过期时间,以秒为单位
#如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds

#设置键a1的过期时间为3秒
expire a1 3

 ttl:

#查看有效时间,以秒为单位
ttl key

#查看键a1的有效时间
ttl a1

hash类型

  • ash⽤于存储对象,对象的结构为属性、值
  • 值的类型为string

 hset:

#设置单个属性
hset key field value

#设置键 user的属性name为xiaoming
hset user name xiaoming

hmset:

#设置多个属性
hmset key field1 value1 field2 value2 ...

#设置键u2的属性name为itcast、属性age为11
hmset u2 name itcast age 11

hkeys:

#获取指定的键的所有的属性
hkeys key

#获取键a1的所有属性
hkeys a1

hget:

#获取多个属性的值
hmget key field1 field2 ...

#获取键u2属性name的值
hget u2 name

 hmget:

#获取多个属性的值
hmget key field1 field2 ...

#获取键u2属性name、age的值
hmget u2 name age

hvals:

#获取所有属性的值
hvals key

#获取键u2所有属性的值
hvals u2

hdel

#删除整个hash键及值,使用del命令
#删除属性,属性对应的值会被一起删除
hdel key field1 field2 ...

#删除键u2的属性age
hdel u2 age

list类型

  • 列表的元素类型为string
  • 按照插入顺序排序

lpush

#在左侧插入数据
lpush key value1 value2 ...

#从键为a1的列表左侧加⼊数据a 、 b 、c
lpush a1 a b c

rpush

#在右侧插入数据
rpush key value1 value2 ...

#从键为a1的列表右侧加⼊数据0、1
rpush a1 0 1

linsert

#在指定元素的前或后插入新元素
linsert key before或after 现有元素 新元素

#在键为a1的列表中元素b前加⼊3
linsert a1 before b 3

lrange

复制代码
#start、stop为元素的下标索引
#索引从左侧开始,第⼀个元素为0
#索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

#返回列表里指定范围内的元素
lrange key start stop

#获取键为a1的列表所有元素
lrange a1 0 -1
复制代码

lset

#设置指定索引位置的元素值
lset key index value

#修改键为a1的列表中下标为1的元素值为z
lset a 1 z

lrem

复制代码
#列表中前count次出现的值为value的元素移除
#count > 0: 从头往尾移除
#count < 0: 从尾往头移除
#count = 0: 移除所有

#删除指定元素
lrem key count value

#向列表a2中加⼊元素a、b、a、b、a、b
lpush a2 a b a b a b

#从a2列表右侧开始删除2个b
lrem a2 -2 b
复制代码

ltrim

#截取保留的元素
ltrim key start stop

# 只保留前三个元素(0-2)
ltrim name 0 2

set类型

sadd:

#添加元素
sadd key member1 member2 ...

#向键a3的集合中添加元素zhangsan、lisi、wangwu
sadd a3 zhangsan sili wangwu

 smembers

#返回所有的元素
smembers key

#获取键a3的集合中所有元素
smembers a3

srem

#删除指定元素
srem key

#删除键a3的集合中元素wangwu
srem a3 wangwu

zset类型:

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯一性,不重复
  • 每一个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
  • 注:zset类型没有修改操作

 zadd

#添加
zadd key score1 member1 score2 member2 ...

#向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,权重分别为4、5、6、3

zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

zrange

复制代码
#返回指定范围内的元素(-1表示最后一个元素)
#start、stop为元素的下标索引
#索引从左侧开始,第一个元素为0
#索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop

#获取键a4的集合中所有元素
zrange a4 0 -1
复制代码

zrangebyscore 

#返回score值在min和max之间的成员
zrangebyscore key min max

#获取键a4的集合中权限值在5和6之间的成员
zrangebyscore a4 5 6

 zscore 

#返回成员member的score值
zscore key member

#获取键a4的集合中元素zhangsan的权重
zscore a4 zhangsan

zrem

#删除指定元素
zrem key member1 member2 ...

#删除集合a4中元素zhangsan
zrem a4 zhangsan

zremrangebyscore 

复制代码
#删除集合a4中元素zhangsan
zrem a4 zhangsan

#删除权重在指定范围的元素
zremrangebyscore key min max

#删除集合a4中权限在5、6之间的元素
zremrangebyscore a4 5 6
复制代码

 

StrictRedis对象⽅法

引⼊模块

 

#引入模块
#这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作

from redis import StrictRedis

 

通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0

sr = StrictRedis(host='localhost',port=6379,db=0)

 

简写:

sr = StrictRedis()

 string-增加

复制代码
try:
    #创建StrictRedis对象,与redis服务器建⽴连接
    sr=StrictRedis()

    #添加键name,值为itheima
    result=sr.set('name','xiaoming')

    #输出响应结果,如果添加成功则返回True,否则返回False
    print(result)

except Exception as e:
    print(e)
复制代码

string-获取

复制代码
try:
    #创建StrictRedis对象,与redis服务器建⽴连接
    sr=StrictRedis()

    #获取键name的值
    result = sr.get('name')

    #输出键的值,如果键不存在则返回None
    print(result)

except Exception as e:
    print(e)
复制代码

string-修改

复制代码
try:
    #创建StrictRedis对象,与redis服务器建⽴连接
    sr=StrictRedis()

    #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
    result = sr.set('name','xiaoming')

    #输出响应结果,如果操作成功则返回True,否则返回False
    print(result)

except Exception as e:
    print(e)
复制代码

string-删除

复制代码
try:
    #创建StrictRedis对象,与redis服务器建⽴连接
    sr=StrictRedis()

    #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
    result = sr.delete('name')

    #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
    print(result)

except Exception as e:
    print(e)
复制代码

获取键

复制代码
 try:
    #创建StrictRedis对象,与redis服务器建⽴连接
    sr=StrictRedis()

    #获取所有的键
    result=sr.keys()

    #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表
    print(result)
    
except Exception as e:
    print(e)
复制代码

与[转帖]redis操作 + StrictRedis使用相似的内容:

[转帖]redis操作 + StrictRedis使用

https://www.cnblogs.com/szhangli/p/9979600.html Redis string类型 字符串类型是 Redis 中最为基础的数据存储类型。 它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据。 如JPEG图像数据或Json对象描述信息等

[转帖]Redis 持久化原理和实现

https://juejin.cn/post/6877763937513766919 Redis 所有的数据和状态存储在内存中,为了避免进程退出而导致数据丢失,需要将数据和状态保存到硬盘上。 为了达到这一目的,通常有两种实现方式: 将 Redis 当作一个状态机,记录每一次的对 Redis 的操作,

[转帖]Redis进阶实践之五Redis的高级特性

https://www.cnblogs.com/PatrickLiu/p/8341951.html 一、引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握。今天我们开始介绍一些Redis的高级特性,虽然

[转帖]Redis学习二(数据操作).

阅读目录 key 操作 string 操作 list 操作 set 操作 zset 操作 hash 操作 HyperLogLog 操作 回到顶部 key 操作 删除 key:del key 批量删除key:redis-cli -a(密码)keys “QXJ_*”| xargs redis-cli -

[转帖]Spring-data-redis操作redis知识总结

https://www.yisu.com/zixun/218120.html 什么是spring-data-redis spring-data-redis是spring-data模块的一部分,专门用来支持在spring管理项目对redis的操作,使用java操作redis最常用的是使用jedis,但

[转帖]redis-cli 命令式操作--模糊删除,带空格删除

https://www.cnblogs.com/linyufeng/p/13610717.html 1. redis-cli 命令操作帮助说明 C:Program FilesRedis>redis-cli.exe --help redis-cli 3.2.100 Usage: redis-cli [

[转帖]redis bigkey 删除问题

一、慢操作分析 redis 的慢操作已经有了,如果没有,我们可以自己去 redis 服务器查看历史的慢日志操作,或者有对应的慢操作监控系统也可以发现问题,这里不做展开。 接下来我们就要看一看为什么这么慢。 看了下项目中的实现代码,结合日志一分析,发现是一个 redis bigkey。 一个 redi

[转帖]Redis命令DEL与UNLINK的区别,如何正确删除大Key!

https://www.itxm.cn/post/47824.html 背景 在这篇文章中做过使用del命令删除大key的实验,结果是del命令随着key的增大,主线程阻塞的时间就越长。 这与之前看redis5.0.8版本的代码中关于多线程删除操作的感官不符,于是决定先查看redis关于删除操作的代

[转帖]Redis性能之内部阻塞式操作及应对方法

文章目录 Redis实例都有哪些阻塞点和客户端交互的阻塞点集合的全量查询和聚合操作bigkey删除操作清空数据库 磁盘交互的阻塞点主从节点交互时的阻塞点切片集群实例交互时的阻塞点可以异步执行的阻塞点异步的子线程总结 Redis的网络IO和键值对读写都是由主线程完成的。 Redis实例都有哪些阻塞点

[转帖]Redis故障检查:识别慢查询操作

https://weibo.com/ttarticle/p/show?id=2309404650615585505652 使用SLOWLOG命令查看Redis中的慢查询操作。 ​​前几篇日志总结了下对Redis部署时的一些配置,Redis启动后,面对各种请求,数据持久化到硬盘,很可能会出现内存不足等