redis常用命令_Python之眼的博客-程序员宅基地

技术标签: 程序员  新手入门  redis  

Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些 command可以在Linux终端使用。在编程时,比如各类语言包,这些命令都有对应的方法。下面将 Redis提供的命令做一总结。

一 键值相关命令

1.1 keys

返回满足给定pattern 的所有key

	--------------------------------------------------------------------
	注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
	--------------------------------------------------------------------

    127.0.0.1:6379> keys * 
      1) "myzset2" 
      2) "myzset3" 
      3) "mylist" 
      4) "myset2" 
      5) "myset3" 
      6) "myset4" 
      7) "k_zs_1" 
      8) "myset5" 
      9) "myset6" 
    10) "myset7" 
    11) "myhash" 
    12) "myzset" 
    13) "age" 

用表达式,代表取出所有的 key*

    127.0.0.1:6379> keys mylist* 
    1) "mylist" 
    2) "mylist5" 
    3) "mylist6" 
    4) "mylist7" 
    5) "mylist8" 

用表达式mylist,代表取出所有以mylist开头的key*

1.2 exists

确认一个key 是否存在

    127.0.0.1:6379> exists HongWan 
    (integer) 0 
    127.0.0.1:6379> exists age 
    (integer) 1 

从结果来数据库中不存在HongWan这个 key,但是age 这个key 是存在的

1.3 del

删除一个key

    127.0.0.1:6379> del age 
    (integer) 1 
    127.0.0.1:6379> exists age 
    (integer) 0 

从结果来数据库中不存在HongWan这个 key,但是age 这个key 是存在的

1.4 expire

设置一个key 的过期时间(单位:秒)

    127.0.0.1:6379> expire addr 10 
    (integer) 1 
    127.0.0.1:6379> ttl addr 
    (integer) 8 
    127.0.0.1:6379> ttl addr 
    (integer) 1 
    127.0.0.1:6379> ttl addr 
    (integer) -1 

在本例中,我们设置 addr 这个 key 的过期时间是 10 秒,然后我们不断的用 ttl 来获取这个key 的有效时长,直至为-1说明此值已过期

1.5 move

将当前数据库中的 key 转移到其它数据库中

    127.0.0.1:6379> select 0  OK 
    127.0.0.1:6379> set age 30  OK 
    127.0.0.1:6379> get age  "30" 
    127.0.0.1:6379> move age 1  (integer) 1 
    127.0.0.1:6379> get age  (nil) 
    127.0.0.1:6379> select 1  OK 
    127.0.0.1:6379[1]> get age  "30"

redis 默认有0-15个数据库, select 0表示选择当前数据库。在本例中,我先显式的选择了数据库 0,然后在这个库中设置一个 key,接下来我们将这个key 从数据库0移到数据库 1,之后我们确认在数据库 0中无此key 了, 但在数据库1 中存在这个key,说明我们转移成功了。
1.6 persist
强制让没有过期的key变成过期

    127.0.0.1:6379[1]> expire age 300 
    (integer) 1 
    127.0.0.1:6379[1]> ttl age 
    (integer) 294 
    127.0.0.1:6379[1]> persist age 
    (integer) 1 
    127.0.0.1:6379[1]> ttl age 
    (integer) -1 
    127.0.0.1:6379[1]> 

在这个例子中,我们手动的将未到过期时间的 key,成功设置为过期
1.7 randomkey

随机返回key 空间的一个 key

    127.0.0.1:6379> randomkey 
    "mylist7" 
    127.0.0.1:6379> randomkey 
    "mylist5" 

通过结果可以看到取 key的规则是随机的
1.8 rename

重命名key

    127.0.0.1:6379[1]> keys * 
    1) "age" 
    127.0.0.1:6379[1]> rename age age_new 
    OK 
    127.0.0.1:6379[1]> keys * 
    1) "age_new" 
    127.0.0.1:6379[1]> 

age 成功的被我们改名为 age_new 了
1.9 type

返回值的类型

    127.0.0.1:6379> type addr 
    string 
    127.0.0.1:6379> type myzset2 
    zset 
    127.0.0.1:6379> type mylist 
    list 

这个方法可以非常简单的判断出值的类型

二 服务器相关命令

2.1 ping

测试连接是否存活

    127.0.0.1:6379> ping 
    PONG 
    //执行下面命令之前,我们停止 服务器 
    127.0.0.1:6379> ping 
    Could not connect to at 127.0.0.1:6379: Connection refused 
    //执行下面命令之前,我们启动 服务器 
    not connected> ping 
    PONG 

第一个ping时,说明此连接正常
第二个ping之前,我们将redis服务器停止,那么 ping是失败的
第三个ping之前,我们将redis服务器启动,那么 ping是成功的
2.2 echo

在命令行打印一些内容

    127.0.0.1:6379> echo HongWan 
    "HongWan" 
    2.3  select 

选择数据库。Redis数据库编号从0~15,我们可以选择任意一个数据库来进行数据的存取。

    127.0.0.1:6379> select 1 
    OK 
    127.0.0.1:6379[1]> select 16 
    (error) ERR invalid DB index 
    127.0.0.1:6379[16]> 

当选择16时,报错,说明没有编号为 16的这个数据库
2.4 quit

退出连接

2.5 dbsize

返回当前数据库中 key 的数目。

    127.0.0.1:6379> dbsize 
    (integer) 18 

结果说明此库中有18个 key

2.6 info

获取服务器的信息和统计。

    127.0.0.1:6379> info

Server

    redis_version:3.2.8
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:bfbbb119badba0e
    redis_mode:standalone
    os:Linux 2.6.32-431.el6.i686 i686
    arch_bits:32
    multiplexing_api:epoll
    gcc_version:4.4.7
    process_id:1747
    run_id:8a00968e3f1e847e7d8b26128e75cb6f58543630
    tcp_port:6379
    uptime_in_seconds:2609
    uptime_in_days:0
    hz:10
    lru_clock:16107058
    executable:/usr/redis/src/redis-server
    config_file:/usr/redis/redis.conf

Clients

    connected_clients:1
    client_longest_output_list:0
    client_biggest_input_buf:0
    blocked_clients:0

Memory

    used_memory:647248
    used_memory_human:632.08K
    used_memory_rss:2322432
    used_memory_rss_human:2.21M

此结果用于说明服务器的基础信息,包括版本、启动时间等。

2.7 monitor

实时监控显示所有收到的请求。

    127.0.0.1:6379> monitor
    OK
    1509279422.769909 [0 127.0.0.1:36620] "COMMAND"
    1509279426.375056 [0 127.0.0.1:36620] "keys" "*"
    1509279436.252634 [0 127.0.0.1:36620] "dbsize"

2.8 config get
获取服务器配置信息

    127.0.0.1:6379> config get dir 
    1) "dir" 
    2) "/user/redis-3.2.8" 

本例中我们获取了 dir 这个参数配置的值,如果想获取全部参数据的配置值也很简单,只需执行”config get *”即可将全部的值都显示出来。

2.9 flushdb
删除当前选择数据库中的所有 key。

    127.0.0.1:6379> dbsize 
    (integer) 18 
    127.0.0.1:6379> flushdb 
    OK 
    127.0.0.1:6379> dbsize 
    (integer) 0 
    127.0.0.1:6379> 

在本例中我们将 0号数据库中的key都清除了。

2.10 flushall

删除所有数据库中的所有 key。

    127.0.0.1:6379[1]> dbsize 
    (integer) 1 
    127.0.0.1:6379[1]> select 0 
    OK 
    127.0.0.1:6379> flushall 
    OK 
    127.0.0.1:6379> select 1 
    OK 
    127.0.0.1:6379[1]> dbsize 
    (integer) 0 
    127.0.0.1:6379[1]> 

在本例中我们先查看了一个1号数据库中有一个key,然后我切换到0号库执行flushall命令,结果1 号库中的 key 也被清除了,说是此命令工作正常。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42625143/article/details/95750200

智能推荐

java动态规划算法_南风知易✓✓✓的博客-程序员宅基地

java 动态规划算法递归算法的时间复杂度=递归的次数递归函数本身的时间复杂度*

典型电路的收集与记录__Jason^_^的博客-程序员宅基地

5V to 3V3通过AMS1117-3.3,将电压降至3V3,钽电容是必须的。蜂鸣器电路通过ss8050的NPN三极管实现对蜂鸣器的控制LED电路通过限流电阻对LED的电流和亮度进行控制。但每种颜色所配合的电阻还需实验,达到LED能亮同时又不晃眼睛的效果。...

Spinner的两种调用数据放式_faith_boys的博客-程序员宅基地

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mLmtdReptStr);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);mSpinner.setAd

ROS arbotix踩坑:‘rospkg‘、except UnicodeDecodeError, exc、dynamic module does not define init function_#君君#的博客-程序员宅基地_ros 安装rospkg

在执行roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch文件时,即包含arbotix模块的程序时,报错No module named ‘rospkg’ 。报错No module named 'rospkg'经过对大家文章的查看,发现基本集中在把环境配置为python3.或者安装rospkg。但是仍没有解决。查看opt/ros/melodic/lib/python2.7/dist-packages,发现根本没有ro.

面试题:实现数组扁平化_weixin_34056162的博客-程序员宅基地

什么是数组扁平化数组扁平化是指将一个多维数组变为一维数组reduce 方法实现reduce 本身就是一个迭代循环器,通常用于累加,所以根据这一特点有以下:const arr1 = [1,[4,6],[8,3,[19,38]]]function flatten(arr) { return arr.reduce((result, item)=> { return re...

JfreeChart用法总结_shiyan0634的博客-程序员宅基地

一、简介 WW 的发展使得基于因特网的应用程序不再局限于静态或者简单的动态内容提供。传统的一些以软件包形式发布应用程序例如报表系统等都在逐渐搬到因特网上。但是这两者之间有着天壤之别,虽然对于数据获取、业务处理等方面基本类似,但是最大的差别在于用户界面。为了能在web浏览器上显示要求用户界面使用 HTML以及图片的方式来展现数据,而传统的一些利用操作系统本身的控件来开发的用户界面无法适应琳琅满目

随便推点

聊聊身份认证的那些事(开篇)_罗斯839的博客-程序员宅基地_cas流程

开篇身份认证,对于一个安全的应用来说,是第一道门槛,它为后续所有的安全措施提供了“身份”这样一个关键信息。通常每个公司会有好几个外部应用,如果每一个应用使用独立的账号体系,管理起来会非常复杂,用户也需要保存好几个账号密码,严重影响使用体验。而且公司内部的各个管理或开发系统,比如各种服务器、confluence、jira、gitlab等也都使用单独的账号,一个开发人员要记住各种纷繁杂乱的账号和密码,如果不提前保存下来,根本不可能能靠记忆完成输入。这时,如何设计一个简单易用的身份认证体系就显得尤为重要

Vscode的使用小技巧_weixin_30399821的博客-程序员宅基地

命令行启动code如果你的系统是Linux系统(我使用的是Ubuntu 16.04)这样就可以直接使用 code + filename来编辑文件(就像vi + filename)如果你的系统是MacOS 就需要在vscode里面按 command + shift + p 之后输入 shell 基本上在第一提示里面就会显示安装code,如图所示转载于:https://www.cnblo...

SpringMVC -> 转发(forward)和重定向(redirect)_欧皇小德子的博客-程序员宅基地_springmvc转发的关键字是redirect

默认写法就是转发:return的字符串将对应的前端页面转发到要求的url上配置了视图解析器的viewsresolver @RequestMapping("/hello/{a}/{b}") public String hello(@PathVariable int a, @PathVariable int b, Model model) { model.addAttribute("haha", "结果:" + (a + b)); return "hello"; }没有视图解析器

ros kinetic 自带opencv3 与 opencv 2 的兼容问题_原野寻踪的博客-程序员宅基地

问题分析自己写的系统必须基于opencv 2.x,而ros kinetic自带了opencv3的版本。于是在编译时报错:/usr/bin/ld: CMakeFiles/xxxx.cpp.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'/opt/ros/kinetic/lib/x86_64-linux-gnu/l...

Latex002 | 详细教程:LaTeX 编译器哪个好?——如何在 Visual Studio Code 中全流程编写 LaTeX(上篇)_爱学习的Allan的博客-程序员宅基地_latex编译器

你是否在编写 LaTeX 过程中遇到了编译器“不给力”,无法自动补全、缩进等问题?本文比较了流行的 LaTeX 的编译器,并简要分析了其优势与不足,最终给出解决方案。