第2章:准备

'纸上得来终觉浅,绝知此事要躬行'--陆游

2.2启动和停止redis

表2-1 redis可执行文件说明

文件名 说明
redis- server redis服务器
redis-cli redis命令行客户端
redis-benchmark redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-dump RDB文件检查工具
redis-sentinel Sentinel服务器(2.8版本后)
  • 我们常用的两个程序是redis-server和redis-cli

2.2.1启动redis

  1. 直接启动

    • $redis-server
    • redis服务器默认使用6379端口
  2. 通过初始化脚本启动redis

    • redis源代码目录的utils文件夹中的redis_init_script的初始化脚本文件

2.2.2停止redis

  • $redis-cli SHUTDOWN

2.3redis命令行客户端

2.3.1发送命令

通过redis-cli向redis发送命令的两种方式:

  1. 将命令作为redis-cli的参数执行

    • $redis-cli -h 127.0.0.1 -p 6379
    • $redis-cli PING # 返回值为PONG为正常连接
  2. redis-cli

2.3.2命令返回值

  1. 状态回复:

    最简单的一种回复

    127.0.0.1:6379> ping
    PONG
  2. 错误回复:

    当命令不存在或命令格式有错误时redis会返回错误回复

    127.0.0.1:6379> ERRORCOMMEND
    (error) ERR unknown command 'ERRORCOMMEND'
    127.0.0.1:6379> LPUSH key 1
    (integer) 1
    127.0.0.1:6379> get key
    (error) WRONGTYPE Operation against a key holding the wrong kind of value
  3. 整数回复:

    reddis没有整数类型,但提供了整数操作命令

    127.0.0.1:6379> incr foo
    (integer) 1
  4. 字符串回复:

    常见的一种回复类型,当请求一个字符串类型键或一个其他类型键中的某个元素时就会得到一个字符串回复.字符串回复以双引号包裹

    127.0.0.1:6379> get foo
    "1"
    127.0.0.1:6379> get noexists
    (nil)
    • 当请求的键值不存在时会得到一个空结果,显示为(nil)
  5. 多行字符串回复:

    同样很常见,如当请求一个非字符串类型键的元素列表时就会收到多行字符串回复.多行字符串回复中的每行都已一个序号开头

    127.0.0.1:6379> keys *
    1) "key"
    2) "foo"

2.4配置

  • $redis-server /path/to/redis.conf

    127.0.0.1:6379> config get loglevel
    1) "loglevel"
    2) "notice"
  • 第一行字符串回复表示选项名,第二行及时选项值

2.5多数据库

更换数据库:

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get foo
(nil)
  • redis不支持自定义数据库名字,每个数据库都以编号命名
  • redis不支持每个数据库设置不同的访问密码
  • redis多个数据库之间并不是完全隔离

Redis自学笔记:2.准备的更多相关文章

  1. Redis自学笔记:5.实践

    第5章实践 5.3 python与redis 5.3.1安装 pip install redis 5.3.2使用方法 自己补充内容:Ubuntu下redis开启远程连接 打开redis配置:sudo ...

  2. Redis自学笔记:4.4进阶-消息通知

    4.4消息通知 4.4.1任务队列 传递任务的队列.与任务队列进行交互的实体有两类,一类是生产者,一类是消费者. 生产者将需要处理的任务放入任务队列中,二消费者不断从任务队列中读入任务 信息并执行. ...

  3. Redis自学笔记:4.3进阶-排序

    4.3排序 4.3.1有序集合的集合操作 有序集合没有zinter和zunion命令,使用其他命令实现方法: multi zinterstore tempKey ... zrange tempKey ...

  4. Redis自学笔记:4.2进阶-过期时间

    4.2过期时间 **4.2.1命令介绍* 在redis中使用 expire 命令设置一个键的过期时间后redis会自动删除它. expire key seconds (seconds单位是秒,必须是整 ...

  5. Redis自学笔记:4.1进阶-事务

    第4章:进阶 4.1事务 4.1.1概述 redis中的事务是一组命令的集合 事务同命令一样都是redis的最小执行单位,一个事务中的命令要么都执行, 要么都不执行 事务的原理是先将一个事务的命令发送 ...

  6. Redis自学笔记:3.6入门-有序集合类型

    3.6有序集合类型 3.6.1介绍 在集合类型基础上,为集合中每个元素都关联了一个分数,故可以获得 分数最高(最低)的前N个元素,可以获得指定范围内的元素等 有序集合中每个元素不同,但它们的分数却可以 ...

  7. Redis自学笔记:3.5入门-集合类型

    3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 ...

  8. Redis自学笔记:3.4入门-列表类型

    3.4列表类型 3.4.1介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者 获得列表的某一片段. 优点:内部使用的是双向链表,所以向列表两端添加元素的时间复杂度为O(1 ...

  9. Redis自学笔记:3.3入门-散列类型

    3.3散列类型 3.3.1介绍 散列类型不能嵌套其他数据类型,一个散列类型可以包含至多232-1个字段 散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的数据, 而字段值则存储属性值 ...

  10. Redis自学笔记:3.2入门-字符串类型

    3.2字符串类型 实际上redis不只是数据库,更多的公司和团队将redis用作缓存和 队列系统 3.2.1介绍 字符串类型是redis最基本的数据类型,它能存储任何形式的字符串, 包括二进制数据.你 ...

随机推荐

  1. 【kafka】celery与kafka的联用问题

    背景:一个小应用,用celery下发任务,任务内容为kafka生产一些数据. 问题:使用confluent_kafka模块时,单独启用kafka可以正常生产消息,但是套上celery后,kafka就无 ...

  2. cf1143E 倍增好题!

    一开始感觉用莫队可以搞一下,但是看了题解才发现这题其实是倍增套路题 把排列转换成nxt数组,然后倍增dp[i][j]表示第i个数后面有(1<<j)个数的最靠左的区间 然后从右往左扫一次即可 ...

  3. bzoj2973转移矩阵构造法!

    /* 构造单位矩阵(转移矩阵) 给定n*m网格,每个格子独立按照长度不超过6的操作串循环操作 对应的操作有 0-9:拿x个石头到这个格子 nwse:把这个格子的石头推移到相邻格子 d:清空该格石子 开 ...

  4. 纯CSS3超酷3D旋转立方体动画特效

    简要教程 这是一款神奇的纯 CSS3 立方体动画特效插件.使用CSS3来制作动画效果已经成为WEB前端开发的一种时尚,从简单的颜色和尺寸动画,到复杂的旋转.翻转动画, CSS3 展现了它无穷的魅力.使 ...

  5. CentOS6.8安装MySQL5.7.20时报Curses library not found解决

    报错如下: CMakeErroratcmake/readline.cmake:83(MESSAGE): Curseslibrarynotfound.Pleaseinstallappropriatepa ...

  6. Python-数据类型之数字

    一:数字类型概述 数字提供了标量存储和直接访问,属于不可变数据类型,所谓不可变,我们可以认为,更改数字的值会生成一个新的对象 # id可以唯一表示一个对象 age =18 print(id(age)) ...

  7. 安装和配置bazel

    2018-12-26 21:56:23 编译和移植tensorflow的C/C++源码时,用到bazel这一构建工具.本篇blog记录遇到的安装.配置问题. 吐槽 构建工具,从make/ant/cma ...

  8. js中的原型

    一:原型属性 函数本身也是一个包含了方法和属性的对象. 定义一个函数foo(),访问其他对象一样访问该函数的属性: function foo(a, b) { return a * b; } foo.l ...

  9. python之string模块常量:数字,26个字母,标点符号,空白

    In [8]: import string In [9]: dir(string) In [10]: string.ascii_letters Out[10]: 'abcdefghijklmnopqr ...

  10. kudu的分区方式

    为了提供可扩展性,Kudu 表被划分为称为 tablets 的单元,并分布在许多 tablet servers 上.行总是属于单个 tablet .将行分配给 tablet 的方法由在表创建期间设置的 ...