能展示存如redis那一块的代码嘛
时间: 2023-10-17 07:09:37 浏览: 67
以下是存储到Redis的示例代码:
```python
import redis
# 创建Redis客户端
r = redis.StrictRedis(host='localhost', port=6379, db=0)
# 设置键值对
r.set('name', 'Alice')
r.set('age', 25)
# 获取键值对
name = r.get('name')
age = r.get('age')
# 输出结果
print(name.decode()) # 注意需要将获取到的bytes类型数据转换为字符串
print(int(age.decode()))
```
在这个示例中,我们使用了Python Redis库(`redis`)来创建一个Redis客户端,然后使用`r.set()`方法将两个键值对存储到Redis中,分别是`name`和`age`。接下来,我们使用`r.get()`方法获取这些键值对的值,并将它们转换为Python字符串和整数类型。最后,我们打印这些值以确认它们都已成功存储和获取。
相关问题
用php写一份Redis库存锁实例代码
以下是一个使用Redis库存锁的PHP代码示例:
```php
<?php
// Redis连接信息
$redis_host = '127.0.0.1';
$redis_port = 6379;
$redis_password = null;
// Redis库存锁参数
$lock_key = 'inventory_lock';
$inventory_key = 'inventory';
$lock_timeout = 5; // 锁的超时时间,单位为秒
// 连接Redis
$redis = new Redis();
$redis->connect($redis_host, $redis_port);
if(!empty($redis_password)) {
$redis->auth($redis_password);
}
// 抢购商品函数
function purchase_item($redis) {
// 获取锁
$lock = $redis->incr($lock_key);
while ($lock > 1) {
$lock = $redis->incr($lock_key);
usleep(100000); // 等待100毫秒
}
// 判断库存是否充足
$inventory = $redis->get($inventory_key);
if (intval($inventory) > 0) {
// 扣减库存
$redis->decr($inventory_key);
echo 'Purchase success!' . PHP_EOL;
} else {
echo 'Inventory is insufficient!' . PHP_EOL;
}
// 释放锁
$redis->expire($lock_key, $lock_timeout);
$redis->decr($lock_key);
}
// 测试
for ($i = 0; $i < 10; $i++) {
purchase_item($redis);
}
```
在上面的代码中,首先定义了Redis的连接信息和库存锁参数,其中库存锁参数包括锁键、库存键、锁的超时时间等。然后使用`new Redis()`方法连接Redis数据库。
在`purchase_item()`函数中,首先使用`incr()`方法对锁键进行加一操作,获取锁。如果返回值大于1,则表示锁已经被其他客户端获取,此时需要等待一段时间后重新尝试获取锁。如果返回值为1,则表示该客户端获取了锁,可以进行下单操作。
在下单操作中,首先使用`get()`方法获取库存数,并判断库存是否充足。如果库存充足,则使用`decr()`方法对库存数进行扣减。否则,直接输出库存不足信息。
最后使用`expire()`方法设置锁的超时时间,并使用`decr()`方法将锁的值减一,释放锁。
redis存集合代码
以下是一个使用 Redis 存储集合的 Python 代码示例:
```python
import redis
# 连接 Redis
redis_client = redis.Redis(host='localhost', port=6379, db=0)
# 添加元素到集合
redis_client.sadd('my_set', 'apple', 'banana', 'orange')
# 获取集合中的所有元素
my_set = redis_client.smembers('my_set')
print(my_set)
# 检查元素是否存在于集合中
print(redis_client.sismember('my_set', 'apple')) # 输出 True
print(redis_client.sismember('my_set', 'pear')) # 输出 False
# 从集合中删除元素
redis_client.srem('my_set', 'banana')
```
在上面的示例中,首先我们使用 `redis.Redis()` 方法连接到 Redis 实例。然后,我们使用 `sadd()` 方法向名为 `my_set` 的集合中添加了一些元素。接着,我们使用 `smembers()` 方法获取集合中的所有元素。然后,我们使用 `sismember()` 方法检查元素是否存在于集合中,并使用 `srem()` 方法从集合中删除元素。
阅读全文