python redis_Python操作Redis缓存数据库

今天我们来学习如何使用Python操作Redis缓存数据库,首先我们需要使用到一个redis库,使用之前先安装一下,依旧是使用pip进行安装:

```

pip install redis

```

安装好了redis库之后,我们只需使用`import redis`导入即可使用了,是不是很方便呀,之前的文章里也用到很多库,大部分都是通过这两个步骤使用的;

接下来我们开始讲解如何操作Redis数据库,介绍一下Redis的五大数据类型:分别是`字符串类型string`、`列表类型list`、`集合类型set`、`哈希类型hash`、`有序集合类型 sorted set`

###开启数据库

要注意我们操作之前需要先开启Redis数据库,我们上一篇文章《Redis的使用》里面有告诉我们如何安装Redis数据库,那我们现在先打开一个 命令窗口,使用 cd 命令切换目录到 redis 所在的目录运行

```

redis-server.exe redis.windows.conf

```

这时候另启一个命令窗口,原来的不要关闭,不然就无法访问服务端了,我们先试一下可不可以使用

```

# 设置键值对:

set Angle 20

# 取出键值对:

get Angle

# 设置键值对:

set class a

# 取出键值对:

get class

```

![](https://upload-images.jianshu.io/upload_images/3260639-7ab04356963bd51f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 一、字符串类型string

我们先通过例子看一下如何使用string类型数据

```

import redis

# 连接数据库

client = redis.StrictRedis(host='localhost', port=6379, db=0)

##### 单个string

result = client.set('Mark', 100)

print(result) # 输出:True

age = client.get('Mark')

print(age.decode()) # 输出:100

##### 多个string

student = {

'name': 'zeng',

'age': '22'

}

result1 = client.mset(student)

print(result1) # True

stu = 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

```

上面的例子中分别对单个string、多个string进行了举例,其中涉及到赋值和取值的方法,我们来看一下具体的介绍:

- `set()方法`:单个string操作方法,用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型;

- `get()方法`:单个string操作,用于获取指定 key 的值,如果key不存在,返回nil,如果key储存的值不是字符串类型,返回一个错误;

- `decode()方法`:这个大家应该都知道,用于解码;

- `mset()`:多个string操作,用于同时设置一个或多个key-value对;

- `mget()`:多个string操作,返回所有给定key的值;

- `delete()`:删除数据,可以根据key来指定删除数据;

### 二、列表类型list

```

import redis

client = redis.StrictRedis(host='localhost', port=6379, db=0)

```

- `lpush()方法`:令将一个或多个值插入到列表头部,如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作,当 key存在但不是列表类型时,返回一个错误;

注意:在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值;

```

# 插入一个元素

result = client.lpush('lsts', 'name')

print(result)

# 创建列表

lsts = ('name', 'age', 'class', 'score')

# 插入多个元素

result = client.lpush('lsts', *lsts)

print(result) # 4

```

- `lrange()方法`:返回列表中指定区间内的元素,区间以偏移量START和END指定,其中0表示列表的第一个元素,1表示列表的第二个元素,以此类推,以-1表示列表的最后一个元素, -2表示列表的倒数第二个元素,以此类推;

```

# 先加入进入的元素在后面,后加入的元素在前面

result = client.lrange('lsts', 0, -1)

print(result) # [b'score', b'class', b'age', b'name']

```

- `lpop()方法`:用于移除并返回列表的第一个元素;

```

# 从左边删除一个元素

result = client.lpop('lsts')

print(result) # b'score'

```

###三、集合类型set

```

import redis

client = redis.StrictRedis(host='localhost', port=6379, db=0)

```

- `sadd()`:将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;

```

sets = ('name', 'age', 'class', 'score')

result = client.sadd('new_sets', *sets)

print(result) # 4

```

- `smembers()`:判断成员元素是否是集合的成员;

```

result = client.smembers('new_sets')

print(result)

```

- `srem()`:用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;

```

result = client.srem('new_sets', 'address')

print(result) # 1

```

###四、哈希类型hash

```

import redis

client = redis.StrictRedis(host='localhost', port=6379, db=0)

```

- hset():用于为哈希表中的字段赋值 ,如果哈希表不存在,一个新的哈希表被创建并进行HSET操作;

```

client.hset("hash1", "k1", "v1")

client.hset("hash1", "k2", "v2")

```

- `hkeys()`:用于获取哈希表中的所有域(field);

```

print(client.hkeys("hash1")) # [b'k1', b'k2']

```

- `hget()`:用于返回哈希表中指定字段的值;

```

print(client.hget("hash1", "k1")) # b'v1'

```

- `hmget()`:用于返回哈希表中,一个或多个给定字段的值;

```

print(client.hmget("hash1", "k1", "k2")) # [b'v1', b'v2']

```

###五、有序集合类型 sorted set

```

import redis

client = redis.StrictRedis(host='localhost', port=6379, db=0)

```

- `zadd(name, *args, **kwargs) `:在name对应的有序集合中添加元素;

```

d = {'Join': '20'}

result = client.zadd("zset1", d)

print(result) # 1

```

- `zcard(name)`:获取name对应的有序集合元素的数量;

```

result = client.zcard("zset1")

print(result)

```

- `zcount(name, min, max)`:获取name对应的有序集合中分数 在 [min,max] 之间的个数;

```

client.zcount("zset1", 0, 1)

```

- `zincrby(name, value, amount)` :自增name对应的有序集合的 name 对应的分数;

```

print(client.zincrby("zset1", 1, '20'))

```

以上就是Redis的五大数据类型的基本用法的一些小实例,如果大家不懂的记得动手去尝试哟,特别是每种类型的方法都有很多,大家可以自行查看API~

官网地址:[https://redis-py.readthedocs.io/en/latest/](https://redis-py.readthedocs.io/en/latest/)

参考学习:https://www.9xkd.com/user/plan-view.html?id=1087797436

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值