前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis(2)——通用命令

Redis(2)——通用命令

作者头像
羊羽shine
发布2019-05-29 18:35:04
4280
发布2019-05-29 18:35:04
举报
文章被收录于专栏:Golang开发
set

set ket value不管key 是否存在 都设置

代码语言:javascript
复制
127.0.0.1:6379> set test redis
OK
setnx

setnx key value key不存在才设置

代码语言:javascript
复制
127.0.0.1:6379> setnx test mysql
(integer) 0
127.0.0.1:6379> setnx foo bar
(integer) 1
setxx

set key value xx key存在才设置,不存在不设置,也就是update 更新操作

代码语言:javascript
复制
127.0.0.1:6379> set test mysql xx
OK
127.0.0.1:6379> get test
"mysql"
127.0.0.1:6379> set test1 test1 xx
(nil)
127.0.0.1:6379> get test1
(nil)
keys

keys * 遍历所以的key

代码语言:javascript
复制
192.168.1.111:6379> set hello world
OK
192.168.1.111:6379> set redis 6379
OK
192.168.1.111:6379> set mysql 3306
OK
192.168.1.111:6379> keys *
1) "hello"
2) "mysql"
3) "redis"
192.168.1.111:6379> set hello1 world1
OK

keys [pattern] 根据正则表达式通配符获取key,redis 是单线程所以keys命令不适合生产环境使用,keys时间复杂度o(n)

代码语言:javascript
复制
192.168.1.111:6379> keys he*
1) "hello"
2) "hello1"
dbsize

计算keys总数

代码语言:javascript
复制
> dbsize
(integer) 4
exists key

检查key是否存在

代码语言:javascript
复制
192.168.1.111:6379> exists mysql
(integer) 1
192.168.1.111:6379> exists world
(integer) 0
type

type key 返回key的类型,none 表示不存在的key

代码语言:javascript
复制
> type test
string
> type test1
none
del

删除指定 的key-value,成功返回1 不成功为0

代码语言:javascript
复制
> del hello1
(integer) 1
expire

expire key seconds 表key在seconds秒后过期,如果key不存在返回0

代码语言:javascript
复制
127.0.0.1:6379> expire hello 10
(integer) 0
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> expire hello 10
(integer) 1

如果过期时间设置成负数表示立马执行删除操作

代码语言:javascript
复制
127.0.0.1:6379> set test test1
OK
127.0.0.1:6379> expire test -1
(integer) 1
127.0.0.1:6379> get test
(nil)
ttl

查询key剩余的过期时间,>=0表示剩余的过期时间,-1表示key存在,并且没有过期时间,-2 表示key已经不存在,

代码语言:javascript
复制
192.168.1.111:6379> set test redis
OK
192.168.1.111:6379> expire test 10
(integer) 1
192.168.1.111:6379> ttl test
(integer) 5
192.168.1.111:6379> ttl test
(integer) -2
192.168.1.111:6379> get test
(nil)
persist

去掉key的过期时间

代码语言:javascript
复制
192.168.1.111:6379> set test test
OK
192.168.1.111:6379> expire test 20
(integer) 1
192.168.1.111:6379> ttl test
(integer) 13
192.168.1.111:6379> persist test
(integer) 1
192.168.1.111:6379> ttl test
(integer) -1
incr

key 自增1 如果key 不存在 自增后get(key)=1

代码语言:javascript
复制
127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> incr counter
(integer) 2
127.0.0.1:6379> get counter
"2"
decr

key 自减1 如果key不存在,自减后get(key)=-1

代码语言:javascript
复制
127.0.0.1:6379> decr counter
(integer) 1
127.0.0.1:6379> decr conter
(integer) -1
127.0.0.1:6379> get conter
"-1"
incrby

incrby key k key 自增k 如果key 不存在 ,自增后get(key)=k

代码语言:javascript
复制
127.0.0.1:6379> incrby counter 100
(integer) 99
incrbyfloat

增加key到对应的浮点数

decrby

decrby key k key 自减k 如果key 不存在 ,自减后get(key)=-k

代码语言:javascript
复制
127.0.0.1:6379> decrby counter 100
(integer) -1
mset

mset key1 value1 key2 value2 批量设置key-value

代码语言:javascript
复制
127.0.0.1:6379> mset test v1 test2 v2 test3 v3
OK
mget

mget key1 key2 key3批量获取key 原子操作,时间复杂度是o(n)

代码语言:javascript
复制
127.0.0.1:6379> mget test test2 test3
1) "v1"
2) "v2"
3) "v3"
getset

getset key newvalue 设置新的newvalue并返回旧的value

代码语言:javascript
复制
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> getset hello redis
"world"
append

append key value 将value追加到旧的value

代码语言:javascript
复制
127.0.0.1:6379> append hello " java"
(integer) 10
127.0.0.1:6379> get hello
"redis java"
strlen

strlen key返回字符串的长度

代码语言:javascript
复制
127.0.0.1:6379> strlen hello
(integer) 10
getrange

getrange key start end 获取字符串指定下标所以的值

代码语言:javascript
复制
127.0.0.1:6379> set hello 123456
OK
127.0.0.1:6379> getrange hello 0 3
"1234"
setrange

setrange key start end设置指定下标所以对应的值

代码语言:javascript
复制
127.0.0.1:6379> setrange hello 3 5
(integer) 6
127.0.0.1:6379> get hello
"123556"
rename

rename key newkey重命名键

代码语言:javascript
复制
127.0.0.1:6379> set hello redis
OK
127.0.0.1:6379> get hello
"redis"
127.0.0.1:6379> rename hello hi
OK
127.0.0.1:6379> get hi
"redis"

如果rename之前的key 存在 那么key的值会被覆盖 需要注意

代码语言:javascript
复制
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> set c d
OK
127.0.0.1:6379> rename a c
OK
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379> get c
"b"
renamenx

在newkey 不存在的时候才会重新重命名

代码语言:javascript
复制
127.0.0.1:6379> get hi
"redis"
127.0.0.1:6379> set hello word
OK
127.0.0.1:6379> renamenx hello hi
(integer) 0
expireat

设置过期时间戳

代码语言:javascript
复制
127.0.0.1:6379> expireat hello 1556357605
(integer) 1
127.0.0.1:6379> get hello
"word"
scan

scan cursor [match pattern] [count number] cursor 是必须参数 表示一个游标,第一次遍历从0 开始,每次遍历返回当前游标的值,知道游标值为0 表示遍历结束

代码语言:javascript
复制
127.0.0.1:6379> scan 0
1) "7"
2)  1) "hi"
    2) "listkey"
    3) "redis"
    4) "mysql"
    5) "list2"
    6) "setkey"
    7) "c"
    8) "list"
    9) "user_1"
   10) "foo"
127.0.0.1:6379> scan 7
select

redis 默认有16个数据库,0-15号数据库之间数据没有任何关联

代码语言:javascript
复制
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 0
OK
flushdb

清除数据库数据

代码语言:javascript
复制
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set hello word
OK
127.0.0.1:6379[1]> get hello
"word"
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> get hello
(nil)
flushall

清除所有数据库数据

config set requirepass 配置密码
代码语言:javascript
复制
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
字符串

value 字符串/整型/二进制,字符串大小不能超过512M

代码语言:javascript
复制
127.0.0.1:6379> set hello "redis"
OK
127.0.0.1:6379> get hello
"redis"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • set
  • setnx
  • setxx
  • keys
    • dbsize
    • exists key
    • type
    • del
    • expire
    • ttl
    • persist
    • incr
    • decr
    • incrby
    • incrbyfloat
    • decrby
    • mset
    • mget
    • getset
    • append
    • strlen
    • getrange
    • setrange
    • rename
    • renamenx
    • expireat
    • scan
    • select
      • flushdb
      • flushall
      • config set requirepass 配置密码
      • 字符串
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档