什么是redis 数据库
关于redis数据库的介绍或者科普文章十分之多,这里面我说下我的感受。redis数据库是一个运行在内存中支持多种复杂数据结构的key-value型数据库,想比较其他的key-value数据库redis保持了其他数据库无法比拟的高效性。
redis数据库支持的数据结构
Strings(字符串), Lists(链表), Hashes(哈希), Sets(集合) 及 Ordered Sets(有序集合)
安装准备
安装redis插件
pip install redis
python 操作 redis Strings 类型
建立连接
这里面使用的端口为默认端口
r = redis.StrictRedis(host='localhost', port=6379, db=0)
新增/设置数据
rest = self.r.set(key, value)
例如
rest = r.set("student1", "张三")
print(rest)
查询数据
rest = self.r.get('student1')
rest = rest.decode()
print("student1的value是",rest)
新增/设置多条数据
d = {
'student1': '欧阳锋',
'student2': '张无忌'
}
rest = r.mset(d)
print(rest)
获取多条数据
l = ['student1', 'student2']
rest = r.mget(l)
rest = [res.decode() for res in rest]
print(rest)
从这里也能够看出,当重复赋值的时候,student1的原value本来是张三,后来变为了欧阳锋。
删除数据
rest = r.delete('student1')
print(rest)
rest = r.delete('student1')
print(rest)
rest = r.get('student1')
print(rest)
第一次执行delete(‘student1’)返回值是1,代表的是执行成功,当再次执行delete(‘student1’)返回值是0,代表的是执行失败,也就是没有这条数据。
当我们删除该数据后,再获取student1的数据自然也就获取不到了。
python 操作 redis Lists 类型
建立连接
r = redis.Redis(host='localhost', port=6379, db=0)
插入数据/获取数据
这里简单介绍一下redis 链表操作的基本命令
lpush/rpush – 从左/右插入数据
lrange – 获取指定长度的数据 类似python列表的索引
t = ['令狐冲', '任盈盈']
rest = r.lpush('jianghu', *t)
print(rest)
rest = r.lrange('jianghu', 0, -1)
rest = [res.decode() for res in rest]
print(rest)
当使用lpush时返回值为操作的记录数,就是实际增加的条数。
删除数据
rest = r.rpop('jianghu')
print(rest.decode())
rest = r.lrange('jianghu', 0, -1)
rest = [res.decode() for res in rest]
print(rest)
python 操作 redis sets 类型
建立连接
r = redis.Redis(host='localhost', port=6379, db=0)
添加数据
l = ['剑圣', '德玛']
rest = r.sadd('战士', *l)
print(rest)
rest = r.smembers('战士')
rest = [res.decode() for res in rest]
print(rest)
删除数据
l = ['提莫']
r.sadd('战士', *l)
rest = r.smembers('战士')
rest = [res.decode() for res in rest]
print(rest)
count = r.srem('战士', '提莫')
rest = r.smembers('战士')
rest = [res.decode() for res in rest]
print(rest)
返回集合的并交集
l = ['德玛','光辉']
r.sadd('德玛西亚', *l)
rest = r.sunion('德玛西亚', '战士')
rest = [res.decode() for res in rest]
print(rest)
rest = r.sinter('德玛西亚', '战士')
rest = [res.decode() for res in rest]
print(rest)
python 操作 redis Hashes 类型
建立连接
r = redis.Redis(host='localhost', port=6379, db=0)
设置/获取hash值
r.hset('stu:1', 'name', '张三')
rest = r.hget('stu:1', 'name')
print(rest.decode())
rest = r.hget('stu:2', 'name')
print(rest)
设置/获取多对值
renwu = {
'name': '令狐冲',
'age': 21,
'武功': "易筋经"
}
rest = r.hmset('wuxia:1', renwu)
print(rest)
rest = r.hvals('wuxia:1')
rest = [res.decode() for res in rest]
print(rest)
后记
这些事python操作redis最基础得命令,同时也是redis本身最基本的命令了。可以说是redis皮毛中的皮毛了,所以这篇文章只适合初学者选看。