八股文之linux中redis常用命令

全局操作

查询键

# 查询所有的键,遍历所有的键
keys * 

127.0.0.1:6379> keys *

  1. “backup4”
  1. “backup3”
  1. “backup2”

127.0.0.1:6379>

查询键总数,直接获取redis内置的键总数变量

dbsize

127.0.0.1:6379> dbsize

(integer) 3

127.0.0.1:6379>

判断键是否存在

# 存在返回1,不存在返回0
exists key

127.0.0.1:6379> exists k1

(integer) 1

127.0.0.1:6379>

删除键

# 返回结果为成功删除键的个数
del key [key列表]

127.0.0.1:6379> del k1

(integer) 1

127.0.0.1:6379> keys *

  1. “backup4”
  1. “backup3”
  1. “backup2”

127.0.0.1:6379>

键过期

# 当超过过期时间,会自动删除,key在seconds秒之后过期
expire key seconds
# 键在秒级时间戳timestamp后过期
expireat key timestamp
# 当超过过期时间,会自动删除,key在milliseconds毫秒后过期
pexpire key milliseconds 
# key在毫秒级时间戳timestamp后过期
pexpireat key milliseconds-timestamp key
# ttl命令可以查看键的剩余过期时间,单位秒
# >0 标识剩余过期时间,-1没有设置过期时间,-2键不存在
# pttl 毫秒级过期时间

20211227123704
20211227122721
20211227123252

键的数据结构类型

# 如果helo是字符串,返回string,如果键不存在返回none
type key

20211227124211

键重命名

# key:原来的key名称
# newkey:新的key名称,只有newkey不存在时候才会覆盖
rename key newkey

20211227124503
随机返回一个键

randomkey

127.0.0.1:6379> randomkey

“backup3”

127.0.0.1:6379> randomkey

“setdemo”

127.0.0.1:6379> randomkey

“list”

遍历键

全量遍历

keys命令的原理就是扫描整个redis里面所有的db的key数据,然后根据我们的通配的字符串进行模糊查找出来

redis中允许模糊查询的有3个通配符,分别是:*,?,[]

20211227130223

渐进式遍历

SCAN 命令是一个基于游标的迭代器(cursor based iterator): SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束

20211227130705

清除Redis所有缓存

flushall

查看redis服务是否启动

ps -aux | grep redis

检查键是否存在

exists key 存在返回1,不存在返回0

字符串 String

注意: 由于redis并没有一个明确的类型来表示整型数据,所以这个操作是一个字符串操作。

SET			--存入一个字符串键
SETNX		--存入一个字符串键,若Key存在则操作失败
GET			--获取指定Key的字符串
MSET		--批量存入字符串键
MGET		--批量获取指定Key的字符串
DEL			--删除指定Key(所有类型都可以使用此命令)
APPEND      -- 
-- 如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 
-- 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。
INCR -- 加1
INCRBY -- 加指定数字
DECR -- 减1
DECRBY -- 减指定数字
STRLEN -- 获取字符串长度

127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> get k2
"v2"
127.0.0.1:6379> set k3 12
OK
127.0.0.1:6379> get k3
"12"
127.0.0.1:6379> set k4 12.24
OK
127.0.0.1:6379> get k4
"12.24"
127.0.0.1:6379> set k5 23.12f
OK
127.0.0.1:6379> get k5
"23.12f"
127.0.0.1:6379> set k6 true
OK
127.0.0.1:6379> get k6
"true"
127.0.0.1:6379> get k11
"v1"
127.0.0.1:6379> get k22
"v3"
127.0.0.1:6379> del key11
(integer) 1
127.0.0.1:6379> mget k4 k6
1) "12.24"
2) "true"
127.0.0.1:6379> set k1 k2
OK
127.0.0.1:6379> setnx k1 v11
(integer) 0
127.0.0.1:6379> append str:append hello
(integer) 5
127.0.0.1:6379> get str:append
"hello"
127.0.0.1:6379> append str:append world
(integer) 10
127.0.0.1:6379> get str:append
"helloworld"

127.0.0.1:6379> incrby str:incrby 0
(integer) 0
127.0.0.1:6379> incrby str:incrby
(error) ERR wrong number of arguments for 'incrby' command
127.0.0.1:6379> incrby str:incrby 1
(integer) 1
127.0.0.1:6379> incr str:incrby
(integer) 2
127.0.0.1:6379> incr str:incrby
(integer) 3
127.0.0.1:6379> decr str:incrby
(integer) 2
127.0.0.1:6379> decr str:incrby
(integer) 1
127.0.0.1:6379> decrby str:incrby 3
(integer) -2

127.0.0.1:6379> keys str*
1) "str:append"
2) "str:incrby"
127.0.0.1:6379> strlen str:append
(integer) 10
127.0.0.1:6379> get str:append
"helloworld"

列表 List

LPUSH Key value [value...]			--往key的列表键中左边放入一个元素,key不存在则新建
RPUSH Key value [value...]			--往key的列表键中右边放入一个元素,key不存在则新建
LPOP Key							--从key的列表键最左端弹出一个元素
RPOP Key							--从key的列表键最右端弹出一个元素
LRANGE Key start stop				--获取列表键从start下标到stop下标的元素
LREM key 删除几个 对应数值       		-- 删除指定数值,多少个
LINDEX key 44 						-- 根据索引获取对应的数值
LLEN key 							-- 获取list元素个数
LSET KEY 下标 目标值-- 修改命令是lset,修改时需要指定要修改元素的下标和要修改的新值 
eg:案例说明
127.0.0.1:6379> lpush list1 99
(integer) 10
127.0.0.1:6379> lpop list1
"99"
127.0.0.1:6379> rpop list1
"l44"
127.0.0.1:6379> lpush list1 87
(integer) 9
127.0.0.1:6379> lrange list1 0 10
1) "87"
2) "23"
3) "l4"
4) "l3"
5) "l2"
6) "l1"
7) "l11"
8) "l22"
9) "l33"
127.0.0.1:6379> llen list:nums
(integer) 5
127.0.0.1:6379> lindex list:nums 1
"3"
127.0.0.1:6379> lindex list:nums 44
(nil)
127.0.0.1:6379> lrem list:nums 1 1
(integer) 1

127.0.0.1:6379> lrange list:nums 0 -1
1) "4"
2) "3"
3) "1_right"
4) "2_right"
127.0.0.1:6379> lset list:nums 0 44
OK
127.0.0.1:6379> lrange list:nums 0 -1
1) "44"
2) "3"
3) "1_right"
4) "2_right"

无序集合 SET

SADD Key member [member...]			--往集合键key中存放元素,若key不存在则新建 注意:插入多个元素,是头插法1,2,3-》3,2,1
SREM Key member [member...]			--从集合键key中删除元素
SMEMBERS Key						--获取集合键key中的所有元素
SCARD Key							--获取集合键key中的元素个数
SISMEMBER Key member				--判断{member}元素是否存在于集合键key中
SRANDMEMBER Key [count]				--从集合键key中选出{count}个元素,不从集合键key中删除
SPOP Key [count]					--从集合键key中选出{count}个元素,并且从集合键key中删除
eg:案例说明
127.0.0.1:6379> sadd set001 1
(integer) 1
127.0.0.1:6379> sadd set001 2 3 4
(integer) 3
127.0.0.1:6379> srem set001 1
(integer) 1
127.0.0.1:6379> smembers set001
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> scard set001
(integer) 3
127.0.0.1:6379> sismember set001 1
(integer) 0
127.0.0.1:6379> sismember set001 2
(integer) 1
127.0.0.1:6379> srandmember set001 2
1) "4"
2) "2"
127.0.0.1:6379> srandmember set001 2
1) "3"
2) "2"
127.0.0.1:6379> spop set001 1
1) "3"
127.0.0.1:6379> srandmember set001 1
1) "2"
127.0.0.1:6379> smembers set001
1) "2"
2) "4"
127.0.0.1:6379> smembers set:nameList
1) "2"
2) "3"
127.0.0.1:6379> smembers set:nameListSecond
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sunion set:nameList set:nameListSecond
1) "1"
2) "2"
3) "3"
127.0.0.1:6379>  sinter set:nameList set:nameListSecond
1) "2"
2) "3"
127.0.0.1:6379> sdiff set:nameList set:nameListSecond
(empty list or set)
127.0.0.1:6379> sdiff set:nameListSecond set:nameList
1) "1"
127.0.0.1:6379>

散列表 HASH

hash
HSET			--存入一个key filed 散列结构
HSETNX			--存入一个key field,若key中filed已经存在则操作失败
HGET			--获取指定key field
HMSET			--批量存入key filed
HMGET			--批量获取key filed
HDEL			--删除指定Key filed
HINCRBY			--对key field的数值进行加减操作
HKEYS			--获取key集合
HEXISTS         -- HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
HGETALL         -- 获取在哈希表中指定 key 的所有字段和值
HLEN            -- HLEN key 获取哈希表中字段的数量
HVALS           -- 取哈希表中所有值。
eg:案例练习
本机:0>hmset sites zhihu zhihu.com tb taobao.com bd baidu.com
"OK"
本机:0>hset sites sh souhu.com
"1"
本机:0>hsetnx sites tb tb1.com
"0"
本机:0>hget sites zhihu
"zhihu.com"
本机:0>hmget sites zhihu tb
 1)  "zhihu.com"
 2)  "taobao.com"
本机:0>hset sites n1 0
"1"
本机:0>hincrby sites n1
"ERR wrong number of arguments for 'hincrby' command"
本机:0>hincrby sites n1 1
"1"
本机:0>hgetall sites
 1)  "google"
 2)  "google.com"
 3)  "runoob"
 4)  "runoob.com"
 5)  "weibo"
 6)  "weibo.com"
 7)  "4"
 8)  "taobao.com"
 9)  "zhihu"
 10)  "zhihu.com"
 11)  "tb"
 12)  "taobao.com"
 13)  "bd"
 14)  "baidu.com"
 15)  "sh"
 16)  "souhu.com"
 17)  "n1"
 18)  "1"
本机:0>hkeys sites
 1)  "google"
 2)  "runoob"
 3)  "weibo"
 4)  "4"
 5)  "zhihu"
 6)  "tb"
 7)  "bd"
 8)  "sh"
 9)  "n1"
本机:0>hlen sites
"9"
本机:0>hvals sites
 1)  "google.com"
 2)  "runoob.com"
 3)  "weibo.com"
 4)  "taobao.com"
 5)  "zhihu.com"
 6)  "taobao.com"
 7)  "baidu.com"
 8)  "souhu.com"
 9)  "1"

有序集合 ZSET

ZADD Key score element [...]			--往有序集合键key中存放元素,若key不存在则新建
ZREM Key element [element...]			--从有序集合键key中删除元素
ZSCORE Key element						--获取有序集合键key中{element}元素的score值
ZINCRBY Key increment element			--给有序集合键key中{element}元素进行score值操作,若key不存在则新建,{element}元素不存在则新增后进行score值操作
ZCARD Key								--获取有序集合键key中元素个数
ZRANGE Key start stop [WITHSCORES]		--正序获取有序集合键key中从start下标到end下标的元素
ZREVRANGE Key start stop [WITHSCORES]	--倒序获取有序集合键key中从start下标到end下标的元素
ZRANK KEY MEMBER -- zrank 和 zrevrank 都是返回指定元素的排名(下标),其中 zrank 按照升序排序,zrevrank 按照降序排序.


# 添加
127.0.0.1:6379> zadd  zset001 1 redis
(integer) 1
127.0.0.1:6379> zadd zset001 2 mysql
(integer) 1
127.0.0.1:6379> zadd zset001 3 oracle
(integer) 1
# 删除
127.0.0.1:6379> zrem zset001 mysql
# 查找指定元素的score
(integer) 1
127.0.0.1:6379> zscore zset001 redis
"1"
127.0.0.1:6379> zcard zset001
(integer) 2
127.0.0.1:6379> zrange zset001 0 1
1) "redis"
2) "mongodb"
127.0.0.1:6379> zrange zset001 0 0
1) "redis"

127.0.0.1:6379> zadd zset:scores 10 yuwen 20 shuxue 30 yingyu
(integer) 3
127.0.0.1:6379> zrange zset:scores 0 -1
1) "yuwen"
2) "shuxue"
3) "yingyu"
127.0.0.1:6379> zrange zset:scores 0 -1 withscores
1) "yuwen"
2) "10"
3) "shuxue"
4) "20"
5) "yingyu"
6) "30"

127.0.0.1:6379> zrank zset:scores yuwen
(integer) 0
127.0.0.1:6379> zrank zset:scores shuxue
(integer) 1
127.0.0.1:6379> zrank zset:scores yingyu
(integer) 2
127.0.0.1:6379> zrank zset:scores huaxue
(integer) 3

127.0.0.1:6379> ZREVRANK zset:scores yingyu
(integer) 0
127.0.0.1:6379> ZREVRANK zset:scores shuxue
(integer) 1
127.0.0.1:6379> ZREVRANK zset:scores yuwen
(integer) 2

pub/sub(发布,订阅)

1、publish channel message           发布消息    eg:publish channel:sports 'I want to go eatting'
2、subscribe channel [channel .....]     订阅消息    eg: subscribe channel:sports
3、unsubscribe channel [channel .....]   取消订阅
4、psubscribe pattern [pattern ......]    按照模式订阅
5、unpsubscribe pattern [pattern ......]  按照模式取消订阅
6、查询订阅
 pubsub channels                    查看活跃的频道
   192.168.225.128:6379> pubsub channels
   1) "channel:sports"
   2) "__sentinel__:hello"
  pubsub numsub [channel ......]        查看频道订阅数  pubsub numsub channel:sports
  pubsub numpat                    查看模式订阅数
7、说明:
   客户端在执行订阅命令之后进入了订阅状态,只能接收四个命令:subscribe、psubscribe、unsubscribe、punsubscribe;
   新开启的订阅客户端,无法收到该频道之前的消息,因为redis不会对发布的消息进行持久化。

事务

# 取消执行事务块内的所有命令
discard    
# 执行事务块内的命令
exec 
#  标记一个事务块的开始
multi  
# 取消watch命令对所有key的监视
unwatch 
# 监视一个或者多个key,如果事务执行之前,这个kye被其它命令所动,则事务被打断
watch key [key ...]  

服务器

# 后台异步保存数据到硬盘
bgsave
# 为连接设置、获取名字
client setname/client getname
# 关闭地址为ip:port的客户端
client kill ip:port
# 以人类可读的方式,返回所有的连接客户端信息和统计数据
client list
# 取得运行redis服务器的配置参数
config get parameter
# 设置redis服务器的配置参数
config set parameter value
# 重置info命令的某些统计数据
config resetstat
# 返回当前数据库key数量
dbsize
# 清空整个redis服务器的数据
flushall
# 清空整个当前redis服务器的数据
flushdb
# 返回redis服务器的各种信息和统计数据
info [section]
# 返回最近一次redis成功将数据保存到磁盘时的时间
lastsave
# 实时打印出redis服务器接收到的命令
monitor
# 将当前redis实例所有数据快照(snapshot)以rdb文件
save
# 将当前服务器转变为指定服务器的从属服务器
slaveof host port
# redis用来记录查询执行时间的日志系统
slowlog subcommand [argument]

连接 Connection

# 登录redis输入密码
auth password
# 打印特定信息message,测试时候使用
echo message
# 测试与服务器连接,如果成功返回pong
ping
# 请求服务器关闭与当前客户端连接
quit
# 切换到制定数据库
select index

redis常用命令
redis中scan和keys区别
个人网站

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值