美文网首页
redis02字符串

redis02字符串

作者: 极光火狐狸 | 来源:发表于2017-04-20 18:08 被阅读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'
    

    参考

    相关文章

      网友评论

          本文标题:redis02字符串

          本文链接:https://www.haomeiwen.com/subject/dmwlzttx.html