• redis 操作数据


    # 原创,转载请留言联系

    先放一波 Redis命令文档:http://doc.redisfans.com/

    redis 可以存储5中数据结构:

    字符串string

    哈希hash

    列表list

    集合set

    有序集合zset

    下面列出一点常用操作!

    • 字符串String

    字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

    1.设置单个键值

    set key value

    例如:set name chichung

    2.设置多个键值

    mset key1 value1 key2 value2...

    例如:mset name chichung gender man

    # 注:m就是muti,多个

    3.追加字符

    比如你想插入name:chichung,不小心打漏了个g,怎么操作呢?

    set name chichun

    append name g

    4.查看单个值

    get key

    例如:get name

    5.查看多个值

    mget key1 key2 key3...

    例如:mget name gender

    6.修改一个键的值

    重新设置一个同名的键就行了。

    set name zhicong

    7.设置一个键值对,并让它过了某段时间自动删除

    setex key seconds value

    例如:setex name 10 chichung

    表示过了10秒后删除 name:chichung

     --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • 哈希hash

    hash⽤于存储对象,对象的结构为属性         # 就是python中字典的结构

    的类型为string        # 由于值的类型是string,所以不能储存字典的嵌套

    1.添加单个属性

    hset key field value

    例如:设置 info 的属性 name 为 chichung

    hset info name chichung

    2.添加多个属性

    hmset key field1 value1 field2 value2...

    例如:hmset info name chichung gender man

    3.查看所有某个键的的属性

    hkeys key

    例如:hkeys info

    会返回属性名,name,gender

    4.查看一个属性的值

    hget key field

    例如:hget info name

    5.查看多个属性的值

    hmget key1 key2...

    例如:hmget info name gender

    6.查看所有属性的值

    hvals key

    例如:hvals info

    7.删除属性和值

    hdel key field1 field2...

    例如:hdel info gender

    删除 info 键的属性 gender 和 gender 属性的值 man

    8.查看一个key的全部属性和值

    hgetall key

    9.给指定的key,属性增加值。(如果原来没有这个属性的话,会创建)

    hincrby key field 1

    例如(field是1):原来key是{1:2},增加后变成{1:3}

    如果原来没有key,会新增key:{1:1}

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • 列表list

    列表的元素类型为string

    按照插⼊顺序排序

    1.在左侧插入数据

    lpush key value1 value2 ...

    例如:lpush ele a b c

    那么他在 redis 数据库的排序是 c b a

    2.在右侧插入数据

    rpush key value1 value2...

    3.从指定元素的前后插入数据

    linsert key before 现有元素 新元素

    rinsert key after 现有元素 新元素

    例如:linsert ele before a 0

    在 a 元素的前面插入 0

    4.查看列表的元素

    lrange key start_index end_index

    例如:查看列表的全部元素

    lrange ele 0 -1

    5.修改指定元素的值

    lset key index value

    例如,把下标是3的元素修改为 apple

    lset ele 3 apple

    6.从左边开始,删除 n 个相同的元素

    lrem key n value

    例如,从左边开始,删除两个 a

    lrem ele 2 a

    7.从右边开始,删除 n 个相同的元素

    lrem key -n value

    例如,从右边开始,删除两个 b

    lrem ele -2 b

    8.删除列表中全部的某个元素

    lrem key 0 value

    例如,删除列表中全部的 c

    lrem ele 0 c

    9.截取列表的一段元素

    ltrim key 0 4

    截取列表元素,只保留前5位元素

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • 无序集合set

    元素为string类型

    元素具有唯⼀性,不重复

    说明:对于集合没有修改操作

    1.添加元素

    sadd key member1 member2...

    例如:sadd ele a b c d e f g

    2.获取所有元素

    smembers key

    例如:smembers ele

    3.删除指定元素

    srem key value

    例如:srem ele g

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • 有序集合zset

    元素为string类型

    元素具有唯⼀性,不重复

    每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序

    说明:没有修改操作

    1.添加元素

    zadd key score1 member1 score2 member2 ...

    例如:zadd ele 1 a 2 b 4 d 3 c

    那么他的顺序是a b c d

    2.获取指定范围内的元素

    1.根据下标

    zrange key start_index end_index

    例如:获取有序集合的全部元素

    zrange ele 0 -1

    2.根据权重

    zrangebrscore key min max

    例如,获取权重是2-3之间的全部元素

    zrangebyscore ele 2 3

     3.返回某个元素的权重

    zscore key member

    例如,获取 c 的权重值

    zscore ele c

    4.删除有序集合的指定元素

    zrem key member1 member2...

    例如,删除有序集合的 c d

    zrem ele c d

    5.删除权重值之间的元素

    zremrangebyscore key min max

    例如,删除有序集合中权重为2-3的元素

    zremrangebyscore ele 2 3

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    • 键命令

    1.判断键是否存在

     exists key

    2.查看键对应的值的类型

    type key

    3.删除键值

    del key1 key2...(写一个键就是删除一个)

    例如:del name gender

    4.让已经存在的一个键对,过了某段时间自动删除

    expire key seconds

    例如:expire name 10

    表示10秒后删除 name 键

    5.查看键对还有几秒删除

    ttl key

    例如:ttl name

    注意:如果 key 是设置了倒计时删除的,ttl 命令可以看到它的剩余时间,结束后输出内容为-2!

    如果 key 本来就没有设置倒计时删除的,ttl key 永远都是-1。

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    • 与python交互

    1.首先安装模块

    pip3 install redis

    2.代码模板如下:

    from redis import StrictRedis
    
    if __name__ == '__main__':
    
        # 设置连接属性
        sr = StrictRedis(host='127.0.0.1',port=6379)
    
        sr.set('name','chichung')
        ret = sr.get('name').decode()
        print(ret)
    
        sr.setex('age',10,20)
    
        # 实际上就是 redis 语句来操作,比较简单,不演示多了
  • 相关阅读:
    BZOJ 1269 文本编辑器editor(伸展树)
    NOI 2017 整数(线段树)
    HAOI 2018 染色(容斥+NTT)
    HDU 5279 YJC plays Minecraft(NTT+分治)
    HDU 6088 Rikka with Rock-paper-scissors(NTT+欧拉函数)
    HDU 5552 Bus Routes(NTT+分治)
    HDU 4656 Evaluation(MTT)
    HDU 5829 Rikka with Subset(NTT)
    HDU 6061 RXD and functions(NTT)
    JOISC 2014 邮戳拉力赛(DP)
  • 原文地址:https://www.cnblogs.com/chichung/p/9800810.html
Copyright © 2020-2023  润新知