redis02字符串

2017-04-20  本文已影响20人  极光火狐狸

查看所有的数据

源文件: allkeys.py

import json
import redis
from _functools import partial

# 连接redis数据库: 无密码
r = redis.StrictRedis(host='192.168.1.110')

# 清空所有键
for number, key in enumerate(r.keys()):
    r.delete(key)

# 准备数据
r.set('using_language', 'python')
r.set('favorite_framework', 'tornado')
r.set('personal_info', json.dumps({'name': 'zhengtong', 'sex': 'male', 'work': 'pythoner'}))
r.rpush('learning_language', 'javascript', 'reactjs', 'react-native')

# 查看当前数据库所有的键值
for number, key in enumerate(r.keys()):
    if number == 0:
        print('{!s:<20}{!s:<30}{}'.format('数据类型', '键名', '值'))
    call = partial(lambda: '')
    if r.type(key) == b'string': call = partial(r.get, key)
    if r.type(key) == b'list': call = partial(r.lrange, *(key, 0, -1))
    print('{!s:<20}{!s:<30}{}'.format(r.type(key), key, call()))

# 输出结果
数据类型                键名                            值
b'string'           b'favorite_framework'         b'tornado'
b'string'           b'using_language'             b'python'
b'string'           b'personal_info'              b'{"work": "pythoner", "name": "zhengtong", "sex": "male"}'
b'list'             b'learning_language'          [b'javascript', b'reactjs', b'react-native']

MSET/MGET vs SET/GET

区别
SET/GET 是针对单个键值操作。
MSET/MGET 是针对一组键值进行操作。

相同
它们都是归属于字符串类型。

用set/get来操作键值

import redis

# 连接redis数据库: 无密码
r = redis.StrictRedis(host='192.168.1.110')

# 清空所有键
for number, key in enumerate(r.keys()):
    r.delete(key)

# 设置键值
r.set('key_a', 'a')
r.set('key_b', 'b')
r.set('key_c', 'c')
r.set('key_d', 'd')
r.set('key_e', 'e')

# 读取键值
key_a = r.get('key_a')
key_b = r.get('key_b')
key_c = r.get('key_c')
key_d = r.get('key_d')
key_e = r.get('key_e')

# 打印键值
print(key_a, key_b, key_c, key_d, key_e, sep='\n')

# 显示结果
b'a'
b'b'
b'c'
b'd'
b'e'

用mset/mget来操作键值

import redis

# 连接redis数据库: 无密码
r = redis.StrictRedis(host='192.168.1.110')

# 清空所有键
for number, key in enumerate(r.keys()):
    r.delete(key)

# 设置键值
r.mset(**{'key_a': 'a', 'key_b': 'b', 'key_c': 'c',
          'key_d': 'd', 'key_e': 'e'})

# 读取键值
key_a, key_b, key_c, key_d, key_e = r.mget('key_a', 'key_b', 'key_c',
                                           'key_d', 'key_e')

# 打印键值
print(key_a, key_b, key_c, key_d, key_e, sep='\n')   

# 显示结果
b'a'
b'b'
b'c'
b'd'
b'e'

参考

上一篇 下一篇

猜你喜欢

热点阅读