Redis学习记录:常用命令

Redis

启动命令:redis-server.exe redis.windows.conf
停止命令:redis-server.exe --service-stop

noSql的数据结构,key-value形式存储数据。常用作缓存,分布式锁·····
Redis里所有的key都是字符串(Java中操作的对象,序列化后保存在Redis中也是字符串)。
但不同的key对应的value则具备不同的数据结构。主要五种数据结构如下:

1.String

Rides中的字符串,都是动态字符串,内部是可以修改的,像Java中的StringBuffer,采用分配冗余空间的方式,来减少内存的频繁分配。(实际分配的内存大于需要的内存,当字符串小于1M,扩容在现有的空间基础上加倍,每次扩容1M,最大512M)

  • append
    使用append命令,如果key已经存在,则在value后追加值,否则创建新的键值对。
  • set
    set命令给一个key进行赋值操作
  • decr
    可以对value值进行减1操作(前提是value为数字),如果不是数字则会报错,如果value不存在,则会在默认值(0)的基础上减1
  • decrby
    和decr类似,但可以自己设置步长,decr步长默认1
  • get
    用来获取一个key的value
  • getrange
    可以返回一个key的value的子串,类似Java中的substring。end 参数 -1表示最后一个字符串,以此类推
  • getset
    获取并更新某一个key
  • incr
    给某一个key自增(+1)
  • incrby
    给某一个key自增,可以设置步长
  • incrbyfloat
    和incrby类似,但自增的步长可以指定浮点数
  • mget和mset
    批量获取和存储
  • setex
    给key设置value,同时可以设置过期时间 (时间单位为秒)
  • ttl
    查看key的有效期
  • psetex
    和setex类似,时间单位换为毫秒
  • setnx
    默认情况下,set命令会覆盖已经存在的key,但setnx不会(如果key已经存在就不会修改)
  • msetnx
    批量设置(有一个存在,则都会失败)
  • setrange
    修改一个key的value值(部分修改),第一个参数为偏移量(0表示从第0个字符开始修改),超过长度用0补齐长度在追加
  • strlen
    查看字符串长度

1.1BIT 命令

在Redis中,字符串以二进制形式存储。例如 set k1 a,a对应的ASCII码是97,97转为二进制是01100001,BIT的相关命令就是对二进制进行操作

  • getbit
    返回key在offset处对应的value的值(对应a而言,0为就是0、1位就是1)
  • setbit
    修改key在offset处对应的value的值
    -bitcount
    统计二进制数据中 1 的个数

2.List

  • lpush
    lpush表示将value的值从左到右依次插入表头(类似于栈,先进先出,先进的反而在表尾)
  • lrange
    返回列表指定区间内的元素
  • rpush
    和lpush类似,rpush从右往左
  • rpop
    移除并返回列表的尾元素
  • lpop
    移除并返回列表的头元素
  • lindex
    返回列表中,小标为index的元素
  • ltrim
    对一个列表进行修剪,只保留区间内的元素
  • blpop
    阻塞式的弹出,相当于lpop的阻塞版。当没有元素,会在过期时间内阻塞,只到里面有元素或者过期。

3.Set(元素不能重复)

  • sadd
    添加一个元素到key中
  • smembers
    获取一个key下的所有元素
  • srem
    移除key集合中指定的元素
  • sismember
    返回一个成员是否在集合中
  • scard
    返回集合的数量
  • srandmember
    随机返回一个key里的元素
  • spop
    随机返回并且出栈一个元素
  • smove
    把一个元素从一个集合移动到另一个集合中去
  • sdiff
    返回两个集合的差集,以前一个集合为准除去第二个集合。
  • sinter
    返回两个集合的交集。
  • sdiffstore
    和sdiff类似,不同的是计算出来的结果会保存在新的集合里
  • sinterstore
    和sinter类似,将结果保存到新集合里。(k3 k1 k2)将结果保存到k3
  • sunion
    求并集
  • sunionstore
    求并集并且保存到新集合

4.Hash

hash结构里,key是一个字符串,value则是一个key/value形式的键值对

  • hset
    添加值
  • hget
    获取值
  • hmset
    批量添加
  • hmget
    批量获取
  • hdel
    删除一个指定的field(删除的是键值对)
  • hsetnx
    默认情况下,如果field已经存在,hset会覆盖值,但hsetnx不会。
  • hvals
    获取所有的value
  • hkeys
    获取所有的key
  • hgetall
    同时获取所有key和value
  • hexists
    返回hash里的field是否存在
  • hincrby
    给指定的 value 自增
  • hincrbyfloat
    可以自增浮点数
  • hlen
    返回 某一个key中value的数量
  • hstrlen
    返回key中某一个field的字符串长度

5.Zset

  • zadd
    将指定元素添加进有序集合中
  • zscore
    返回member的score值
  • zrange
    返回集合中的一组元素
  • zrevrange
    返回集合中的一组元素倒序
  • zcard
    返回元素的个数
  • zcount
    返回score在某一个区间的个数
  • zrangebyscore
    按照score的范围返回元素
  • zrank(从小到大)
    返回元素的排名
  • zrevrank(大到小)
    返回元素排名
  • zincrby
    score 自增
  • zinterscore
    求两个集合交集,并保存到新集合里。(set里的key相同的value会求和)
  • zrem
    弹出一个元素
  • zlexcount
    计算有序集合中成员的数量
  • zrangelex
    返回指定区间内的成员

6.key

  • del
    删除一个key/value
  • dump
    序列化给定的key
  • exists
    判断一个key是否存在
  • ttl
    查看一个key的有效期(-1永不过期)
  • expire
    给一个key设置有效期,如果key在过期前被重写set,则过期时间失效
  • persist
    移除一个key 的过期时间
  • keys*
    查看所有的key(为统配符,列入可以k
  • ptt
    和ttl相同,返回时间单位为毫秒

7.补充

  • 四种数据类型(不包含string),在使用时,如果容器不存在,则会自动创建容器
  • 四种数据类型,如果容器里面没元素,则会删除容器,释放内存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值