Redis数据操作命令

这篇博客详细介绍了 Redis 的各种数据操作命令,包括通用命令、String、Hash、List、Set、SortSet、Bitmap、HyperLogLog、Geospatial、发布与订阅以及事务等。涉及的命令有 select、flushdb、keys、set、get、hset、lpush、sadd、zadd、subscribe 等,涵盖了数据的设置、获取、修改、删除以及订阅发布等常见操作。
摘要由CSDN通过智能技术生成

一、通用命令

1、select :redis默认有16个库,默认用的是下标0库,通过该命令来切换库
2、dbsize : 查看当前库有多少个key
3、flushdb: 清空当前库的数据
4、flushall: 清空0-15个库的数据
5、keys * : 查看指定规则的key,星号是通配符,表示看所有
6、exists : 判断是否含有指定key
7、type : 判断key的类型
8、del : 删除指定key
9、unlink: 删除指定key,异步操作,会先返回提示删除,也许还没删除完呢,异步的线程正在删除
10、expire: 为key设置过期时间
11、ttl : 查看key剩余过期时间,-1表示永不过期,-2表示过期key,正数表示剩余时间
12、scan: 通过游标控制,分批次查询数据

127.0.0.1:6379> select 0   #切换库
OK
127.0.0.1:6379> dbsize  #看了下key的数量
(integer) 8
127.0.0.1:6379> flushdb #清空
OK
127.0.0.1:6379> flushall #其他库也给清空
OK
# 填一些假的数据进去
127.0.0.1:6379> mset xp1 v1 xp2 v2 xp3 v3 xp4 v4 xp5 v5 xp6 v6 xp7 v7 xp8 v8 xp9 v9 xp10 v10 xp11 v11
OK
127.0.0.1:6379> exists xp111  #看下有这个key吗,有的话是1,没有是0
(integer) 0
127.0.0.1:6379> type xp1  #看key的类型
string
127.0.0.1:6379> keys xp1* #查看xp1为前缀的key有哪些
1) "xp10"
2) "xp1"
3) "xp11"
127.0.0.1:6379> del xp2  #删除一个key
(integer) 1
127.0.0.1:6379> expire xp3 5 #设置key指定过期时间
(integer) 1
127.0.0.1:6379> ttl xp3 #查看剩余时间为2秒
(integer) 2
127.0.0.1:6379> ttl xp3 # 表示已经过期了
(integer) -2
127.0.0.1:6379> dbsize # 剩余9个
(integer) 9

二、String类型

1、set key value [ex 秒数] [px 毫秒数] [nx/xx]: 设置键值,如果存在则是修改值
表示存在时间,如果ex和px同时写,则以后面的有效期为准
nx:如果key不存在则建立,已存在则不操作
xx:如果key存在则修改其值,不存在无操作,也不会新建
setnx key value 等价于 set key value nx
setex key time value 等价于 set key value ex time
2、get key:取值
3、mset key1 value1 key2 value2 : 一次设置多个值
msetnx key1 value1 key2 value2 :有任何一个存在,则不操作
4、mget key1 key2 :一次获取多个值

127.0.0.1:6379> set k1 v1   #设置键值
OK
127.0.0.1:6379> set k1 v111 nx  #设置键值,因为跟了nx,键已存在则不设置也不修改
(nil)
127.0.0.1:6379> get k1 # 获取值
"v1"
127.0.0.1:6379> set k1 v111 ex 10 #key存在,命令不含ex,修改值为v111并10秒后过期
OK
127.0.0.1:6379> ttl k1 # 剩余8秒过期
(integer) 8
127.0.0.1:6379> get k1 #能取出新设置的值
"v111"
127.0.0.1:6379> get k1 # 过期取不出来值了
(nil)

127.0.0.1:6379> mset key1 v1 key2 v2 #批量设置键值
OK
127.0.0.1:6379> mget key1 key2 #批量取值
1) "v1"
2) "v2"
127.0.0.1:6379> msetnx key1 v111 key2 v222 key3 v333 #批量设置与修改值,但因为有key存在,命令不生效
(integer) 0
127.0.0.1:6379> mget key1 key2 key3 #取值未发生修改,key3也没插入成功
1) "v1"
2) "v2"
3) (nil)

5、incr key:自增,返回新值,如果incr一个不是int的value则返回错误,incr一个不存在的key,则设置key为1
6、decr key : 自减
7、decrby/incrby key 2:指定补偿自增自减,这里指定了2为步长
8、incrbyfloat key 0.7: 自增浮点数

127.0.0.1:6379> incr num  #因为没有插入了值1
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num #自增一点
(integer) 2
127.0.0.1:6379> incr num #自增一点
(integer) 3
127.0.0.1:6379> incrby num 2 #自增2点
(integer) 5
127.0.0.1:6379> incrbyfloat num 0.5 #自增0.5点
"5.5"

5、append key value :把value追加到key 的原值上
6、getset key value:获取并返回旧值,在设置新值
7、strlen key:取指定key的value值的长度
8、setex key time value:设置key对应的值value,并设置有效期为time秒
9、setrange key offset value:指定下标开始的字符串替换成新值,字符串下标从0开始
10、getrange key start stop:获取字符串中[start, stop]范围的值
如果start所处位置在stop右边,则返回空字符串

127.0.0.1:6379> set name zhangs #插入值
OK
127.0.0.1:6379> get name
"zhangs"
127.0.0.1:6379> append name an #在值后面追加an字符
(integer) 8
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> getset name lisi #取出原本的值,将新值覆盖进去
"zhangsan"
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> strlen name # 值长度为4
(integer) 4
127.0.0.1:6379> setex test 6 ceshi #插入值时并设置过期时间
OK
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值