您的位置:首页 > 数据库 > Redis

1.redis的常用命令和string命令

2020-04-05 07:24 1076 查看

常用的一些命令

keys * :返回满足的所有键,可以模糊匹配,比如keys adb* 代表 abc开头的key, *代表任意值(划重点)
exists key :是否存在指定的key,存在返回1,不存在返回0
expire key second :设置某个key的过期时间 单位为秒

pexpire key milliseconds 修改key的过期时间 时间为
del key :删除某个key
ttl key :查看剩余时间,当key不存在时,返回 -2;存在但没有设置剩余生存时间时,返回 -1,否则,以秒为单位,返回key 的剩余生存时间。
pttl key :以毫秒为单位返回key的剩余的过期时间
persist key:移除过期时间。如果移除成功返回1.如果key不存在或者没有设置过期时间,返回0
select :选择数据库 数据库默认为0-15 一共十六个数据库,设计成多数据库实际上为了数据库安全和备份
move key dbindex :将当前数据库的key移动到相对应的索引数据库
randomkey :随机返回一个Key
rename key key3: 重命名key
echo key:打印命令,把当前内容的key打印出来
dbsize :查看数据库的key数量
info:查看当前数据数据库的信息
config get * :实时存储收到的请求,返回相关的配置
flushdb :清空当前数据库
flushall:清空所有数据库

String类型

赋值语法:
set key_name value :(说明:多次设置name会覆盖)(redis set命令 用于设置给定key的值 如果key已经存储值 set就覆写旧值 无视类型)

setnx key1 value: (not exist) 如果key1不存在,则设值,并返回1.

setex key1 10 1x :(expired)设置key1的值为1x,过期时间为10秒,10秒后key1进行消除
SETRANGE key1 6 "Redis" :从索引第六个开始就行替换

批量写 mset k1 v1 k2 v2 一次性可以写入很多个值
取值语法:
get key_name : redis get命令用于获取指定key的值。如果key不存在,返回nil.如果key储存的值不是字符串类型,返回一个错误

批量取: mget k1 k2 k3
getrange key starr end :用于获取存储在指定key中字符串的子字符串。字符串的截取范围由start和end两个偏移量进行决定(包括start个end在内)

getbit key offset :对 key所存储的字符串值,获取指定偏移量上的位(bit)

getset key_name value :getset命令用于设置指定的值,并返回key的旧值,当key不存在时,返回nil
删除语法

del key_name :删除指定的key,如果存在返回数字类型
字符串的一些操作
strlen key:返回jey所存储的字符串值的长度
append key_name value :这个命令用于指定的key追加到末尾如果不存在,为其赋值

自增/自减
incr key_name :incrby 命令将key储存的数字值增1.如果key不存在,那么key会被先初始化,然后再执行incr操作

自增incrby key_name :增量值incrby 命令将key中存储的数字加上指定的增量值
自减 decrby key_name 或者 decyby key_name: dec将key中储存的数字减1

一些应用的场景

1.string通常用于保存带个字符串或json祖父穿数据

2.因string是二进制安全 所以完全可以吧一个图片内容作字符串来存储

3.计数器(常规key-value的缓存应用 常规计算数据,微博数 粉丝数等)

INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等
指令来实现原子计数的效果。假如,在某种场景下有3个客户端同时读取了mynum的值(值为2),然后对其
同时进行了加1的操作,那么,最后mynum的值一定是5。 不少网站都利用redis的这个特性来实现业务上的统
计计数需求。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
cs温柔 发布了12 篇原创文章 · 获赞 0 · 访问量 327 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: