Redis操作指令学习笔记之一

    技术2022-07-11  74

    RedisRedis操作指令学习笔记之一

    Redis服务Redis基本操作redis数据类型指令字符串哈希(对象)列表 list 队列集合有序集合


    【注】:此篇内容为作者整理,和官方文档可能有些差异。


    (声明:本教程仅供本人学习使用,如有人使用该技术触犯法律与本人无关) (如果有错误,还希望指出。共同进步)



    Redis服务

    # 安装redis服务 redis-server --service-install redis.windows.conf --loglevel verbose # 启动服务 redis-server --service-start # 停止服务 redis-server --service-stop # 进入 【不同的配置启动命令不同】 redis-cli # 验证 auth <your password>

    Redis基本操作

    ### 0-15:redis默认有16个数据库,默认是在第0个数据库中操作 ### # 切换数据库 select num # 所有键 keys * # 删除键 del key
    # 给指定的key添加过期时间,单位是s EXPIRE key seconds # 以秒为单位,返回这个键剩余的时间秒数 ttl key # 判断一个键是否存在 exists key # 删除当前数据库中所有的键 flushdb # 删除所有数据库中的所有键 flushall #修改key的名称(如果新的key的名字存在 则会把存在的key的值 覆盖掉) rename key newkey # 随机返回一个 key randomkey # 将指定键移动到指定库 move key db

    redis数据类型指令

    字符串

    # 设置键值对 set key value # 根据键获取对应的值 get key
    # 字符串提取,字符串从0开始,包含start和end getrange key start end # 设置key的值,返回的是旧值,新值会设置成功 getset key value # 设置key的值,过期时间为seconds,如果存在,替换之,时间以s为单位 setex key seconds value # 该key不存在的时候才设置,存在不设置 setnx key value # setrange key offset value 将该key对应的值从offset开始替换为value

    # 得到该key对应的值的长度 strlen key # 同时设置多个键值对 mset key1 value1 key2 value2 key3 value3 # 同时设置多个键值对,将键不存在的时候才设置 msetnx # 设置键值对,时间以ms为单位 psetex key time value # 为key对应的值增加1 # 如果key不存在,那么先创建这个key,值为0,然后设置为1 # 如果key对应的是字符串,那么报错 incr key # 在指定的key对应的值加number incrby key number # 减一 decr key # 减去指定的数量 decrby key number # 在指定的key对应的值后面追加value append key value # 一次获取多个键的值 mget

    哈希(对象)

    # 给对应的key设置属性和属性值 hset key field value # 该key中不存在的field才设置为value hsetnx key field value # 获取指定key的field属性 hget key field # 删除对应key中指定的属性 hdel key field1 field2 # 对应的key中是否存在这个属性,存在返回1,不存在返回0 hexists key field # 获取这个key对应的所有的属性和值 hgetall key
    # 给这个key对应的属性值加减number hincrby key field number # 给这个key对应的属性值加减number,number为float值 hincrbyfloat key field number # 对应的key中所有的属性名 hkeys key # 对应的key中所有的值 hvals key # 对应的key有多少个属性 hlen key # 同时为key设置多个属性和属性值 hmset key field1 value1 field2 value2 ... # 同时获取key的多个属性的值 hmget key field1 field2 ...

    列表 list 队列

    特点:先进先出

    # 依次将value1和value2从左边插入到队列key中 lpush key value1 value2 # 依次的显示队列key中从start开始到stop结束的所有元素,start 0。。。。 stop -1代表最后一个 lrange key start stop # 当队列key存在的时候才往队列头部插入数据,如果队列不存在,插入失败 lpushx key value # 弹出队列key中最左边的元素 lpop key # 将value从右边插入到队列key中 rpush key value1 value2 # 将value从右边插入到队列key中,但是前提是队列key必须存在 rpushx key value # 将队列key中最右边的元素弹出 rpop key
    # 将队列src中最右边的元素插入到队列dst中的最左边 rpoplpush src dst # 将队列中start-stop区间之外的所有元素全部干掉,下标从0开始,闭区间 ltrim key start stop # 将队列key中的第index个元素设置为value,下标从0开始 lset key index value # 得到队列key中元素的个数 llen key # 获取队列key中第index个元素 lindex key index # 1 1 1 3 5 8 1 2 1 3 5 # 1 -3 # count > 0 从最左边开始,干掉count个和value相等的元素 # count < 0 从最右边开始,干掉-count个和value相等的元素 # count = 0 干掉队列key中所有和value相等的元素 lrem key count value # 在队列key中的value的前面或者后面插入newvalue # linsert key before|after value newvalue

    集合

    无序性、唯一性

    # 往集合key中插入多个值 sadd key value1 value2 value3 # 得到集合中元素的个数 scard key # 查看集合key中所有的元素 smembers key # 保留key1中key2和key3没有的元素 key1不变,结果返回给你 sdiff key1 key2 key3 # 将这个(sdiff key1 key2 key3)的结果保留到集合dst中 sdiffstore dst key1 key2 key3 # 取出key1和key2的交集 sinter key1 key2 将sinter key1 key2的结果保存到集合dst中 sinterstore dst key1 key2 # 判断value在不在集合key中,在的话返回1,不在的话返回0 sismember key value # 将集合src中的value元素移动到集合dst中 smove src dst value # 从集合key中随机弹出一个元素 spop key # count > 0 count < 集合元素个数: 返回你一个数组,而且数组元素唯一 # count > 集合元素个数:返回你该集合中所有的元素 # count < 0:返回给你-count个元素,但是不保证唯一 srandmember key count # 移除集合key中的value1和value2元素 srem key value1 value2 ... # 得到集合key1和集合key2的并集 sunion key1 key2 # 将集合key1和集合key2的并集保存到dst中 sunionstore dst key1 key2

    有序集合

    # 将分值为score的成员member加入到有序集合key中 zadd key score member # 得到集合key中元素的个数 zcard key # 得到集合key中分值在start到stop之间的元素的个数 # 闭区间 [start stop] 这个写分值 zcount key start stop # 给集合key中指定的member元素的分值加上number zincrby key number member # 显示集合中的元素 start和stop是下标 0 -1 # 显示成员的时候可以显示分值 zrange key start stop [withscores]
    # 按照区间去查找对应的元素 min和max 是分值 # 【注】前面的只能写数字,肯定是大于等于,后面的可以写开区间,不写默认就是闭区间 # 0 (100 0<= <100 # 0 100 0<= <=100 # 默认升序排列好 zrangebyscore key min max # 从低到高排列,下标从0开始 # 查找member在有序集合key中的排名 显示的是下标 zrank key member # 移除有序集合中指定的元素 zrem key member1 member2 # 查询从start到stop之间所有的元素,但是是从大到小排列 zrevrange key start stop withscores # 用法和zrank一样,但是是从大大小排列的顺序 # 【注】得到的是下标 zrevrank key member # 根据成绩从高到低排序,得到指定分值区间的成员 # ZREVRANGEBYSCORE salary +inf -inf # 逆序排列所有成员 zrevrangebyscore key max min # 返回指定成员的分数 zscore key member
    Processed: 0.013, SQL: 9