全局操作

查询键

# 查询所有的键,遍历所有的键
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 毫秒级过期时间



键的数据结构类型

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

键重命名

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


随机返回一个键

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个通配符,分别是:*,?,[]

渐进式遍历

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

清除Redis所有缓存

flushall

查看redis服务是否启动

ps -aux | grep redis

检查键是否存在

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

字符串 String

SET          --存入一个字符串键
SETNX       --存入一个字符串键,若Key存在则操作失败
GET         --获取指定Key的字符串
MSET        --批量存入字符串键
MGET        --批量获取指定Key的字符串
DEL         --删除指定Key(所有类型都可以使用此命令)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

列表 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下标的元素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"

无序集合 SET

SADD Key member [member...]          --往集合键key中存放元素,若key不存在则新建
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"

散列表 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的数值进行加减操作
eg:案例练习
127.0.0.1:6379> hset hset002 name '24dsf'
(integer) 1
127.0.0.1:6379> hget hset002 name
"24dsf"
127.0.0.1:6379> hmset hset002 age 98.2f sex 'nan'
OK
127.0.0.1:6379> hmget hset002 age sex
1) "98.2f"
2) "nan"
127.0.0.1:6379> hdel hset002 s1
(integer) 1
127.0.0.1:6379> hset hset002 age1 98
(integer) 1
127.0.0.1:6379> hincrby hset002 age1 2
(integer) 100

有序集合 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下标的元素
# 添加
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"

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 channels1) "channel:sports"2) "__sentinel__:hello"pubsub numsub [channel ......]        查看频道订阅数  pubsub numsub channel:sportspubsub 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区别
个人网站

八股文之linux中redis常用命令相关推荐

  1. Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。...

    Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题. 1.显示日期的 ...

  2. Linux学习系列二:Linux中的常用命令

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  3. Linux中的常用命令(二)

    find命令(查找和检索) find  dir(目录)  [option](选项)  内容 1.(-name)按照名字来查找 (查找当前目录下所有的.c文件) 2. (-type)按照类型来查找    ...

  4. Linux 中mysql常用命令

    测试环境: mysql  5.0.45 [注:可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本] 一.连接MYSQL. 格式: mysql -h主机地址 - ...

  5. linux 系统redis常用命令

    一.查找redis所在的目录 whereis redis 二.启动redis服务方法 通过cd命令先进入redis所在的目录,进入bin文件夹(我的redis-server程序所在的目录是:/usr/ ...

  6. linux中vim常用命令总结

    转载于:https://www.cnblogs.com/lanjianhappy/p/6764027.html

  7. Linux中Docker常用命令

    特别提示:当前Docker的版本为20.10.9 1.查看docker服务的版本信息 docker --version 2.启动docker服务 systemctl start docker 3.查看 ...

  8. Linux中的常用命令

    为什么80%的码农都做不了架构师?>>> 1.在后台运行  &   例如 firefox & 2. 当前工作目录 pwd(print work directory) ...

  9. Linux中NGINX常用命令

    nginx -t #测试配置文件 service nginx start #启动 service nginx stop #停止 service nginx status #服务状态 service n ...

最新文章

  1. python实现网络监控_使用python进行服务器监控
  2. R语言绘制空白图实战
  3. ubuntu 安装bcompare
  4. IntelliJ IDEA使用(二):tomcat和jetty配置(转自:http://www.cnblogs.com/jenkinschan/p/6052948.html)
  5. python函数-函数进阶
  6. NUC1158 Lake Counting【DFS】
  7. android百度地图单点定位_Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡...
  8. 昨晚做了个flash
  9. 【ArcGIS】数据属性重新赋值
  10. oracle服务怎么手动删除,彻底删除oracle服务
  11. 【软件工程】山东大学软件工程复习提纲
  12. apkg格式怎么打开_PDF文件怎么压缩?这里有几个小技巧~
  13. Hive命令操作汇总
  14. 【高并发】解密导致并发问题的第二个幕后黑手——原子性问题(文末有福利)
  15. 面试如何巧妙总结自己的缺点和不足之处呢
  16. 神经网络编译器图层面IR
  17. 【雅思】雅思备考教材推荐--个人收集汇总
  18. 【WhatsApp营销】如何为企业构建WhatsApp聊天机器人
  19. 既生 Redis 何生 LevelDB ?
  20. 基于MATLAB的微分方程的定步长与动步长算法对比解法(附完整代码)

热门文章

  1. 保险行业邮件归档案例
  2. eclipse使用的问题
  3. OMS系统是什么?主要功能和优势有哪些?
  4. 北京邮电大学2020-2022年各院研究生分专业报考录取情况
  5. java网上花店系统_鲜花商城_电子商务网站 源码下载
  6. SU插件情报局 | Fredo工具集:纹理工具(附插件安装包)
  7. python 下载安装 torch CUDA版本
  8. 拯救者R7000P(2021)装双系统Ubuntu20.04 解决联发科MT7921无线网卡在Ubuntu中不能联网
  9. Contos7系统下无法查看ip地址的解决方法
  10. wma音频怎么转换mp3格式