深入浅出Redis操作简明入门(redis的相关操作)
深入浅出Redis操作简明入门
Redis是目前较为流行的NoSQL数据库,也是最快的内存数据库之一。它具有高性能、可扩展性和灵活性等特点,提供了丰富的数据类型和功能,支持持久化和复制等高级功能。
本文将介绍Redis的相关概念和操作,帮助初学者快速入门Redis。
一、安装Redis
Redis的官网提供了各个操作系统的安装文档,这里以Ubuntu为例:
1.下载并解压Redis源码包:
wget http://download.redis.io/releases/redis-6.0.9.tar.gz
tar xzf redis-6.0.9.tar.gz
cd redis-6.0.9
2.编译Redis:
make
3.启动Redis:
src/redis-server
4.测试Redis:
src/redis-cli ping
返回PONG则表示安装成功。
二、Redis命令行操作
1.设置和获取值:
> set key value # 设置键值对
OK
> get key # 获取键值
“value”
2.设置过期时间:
> set key value ex 10 # 10秒后过期
OK
> get key
“value” # 10秒内获取成功
> sleep 11
> get key
(nil) # 10秒后获取失败
3.删除键值:
> del key
(integer) 1 # 成功删除一个键值
4.计数器:
> set counter 0 # 初始化计数器
OK
> incr counter # 自增1
(integer) 1
> incrby counter 5 # 自增5
(integer) 6
5.哈希表:
> hmset user id 1 username “lancer” age 21 # 设置用户信息
OK
> hgetall user # 获取所有信息
1) “id”
2) “1”
3) “username”
4) “lancer”
5) “age”
6) “21”
6.列表:
> lpush list 1 2 3 # 左侧插入元素
(integer) 3
> rpush list 4 5 6 # 右侧插入元素
(integer) 6
> lrange list 0 -1 # 遍历列表
1) “3”
2) “2”
3) “1”
4) “4”
5) “5”
6) “6”
> lpop list # 左侧弹出元素
“3”
> rpop list # 右侧弹出元素
“6”
7.集合:
> sadd set 1 2 3 # 添加元素
(integer) 3
> sismember set 2 # 判断元素是否存在
(integer) 1
> smembers set # 获取所有元素
1) “1”
2) “2”
3) “3”
三、Redis客户端操作
1.Python Redis客户端
需要安装redis-py库:
pip install redis
示例:
import redis
r = redis.Redis(host=’localhost’, port=6379, db=0)
# 设置和获取值
r.set(‘key’, ‘value’)
value = r.get(‘key’)
print(value)
# 哈希表
r.hmset(‘user’, {‘id’: 1, ‘username’: ‘lancer’, ‘age’: 21})
user = r.hgetall(‘user’)
print(user)
2. Node.js Redis客户端
需要安装redis模块:
npm install redis
示例:
const redis = require(‘redis’);
const client = redis.createClient(6379, ‘localhost’);
// 设置和获取值
client.set(‘key’, ‘value’, (error, result) => {
console.log(result);
});
client.get(‘key’, (error, result) => {
console.log(result);
});
// 列表
client.lpush(‘list’, [1, 2, 3]);
client.rpush(‘list’, [4, 5, 6]);
client.lrange(‘list’, 0, -1, (error, result) => {
console.log(result);
});
四、Redis高级特性
1.发布订阅
Redis的发布订阅是一个非常有用的功能,适用于事件驱动程序,它使得一个消息可以同时被多个客户端接收和处理。
示例:
# 发布端
redis-cli publish channel “hello”
# 订阅端
redis-cli subscribe channel
Reading messages… (press Ctrl-C to quit)
1) “subscribe”
2) “channel”
3) (integer) 1
1) “message”
2) “channel”
3) “hello”
2.事务
Redis的事务是基于命令队列实现的,可以保证一组命令的原子性,即这些命令要么都执行成功,要么都不执行,不会出现部分执行的情况。
示例:
with r.pipeline() as pipe:
while True:
try:
pipe.watch(‘key’)
value = int(pipe.get(‘key’))
value += 1
pipe.multi()
pipe.set(‘key’, value)
pipe.execute()
break
except redis.WatchError:
continue
本文介绍了Redis的相关概念和操作,帮助读者快速入门Redis。对于Redis的更深入学习,可以参考Redis官网文档和相关书籍。