更多命令请查找:http://c.biancheng.net/redis_command/

切换数据库

redis数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库,可以通过命令 select  库号 进行数据库的切换

键命令

keys

查找键,参数⽀持正则表达式。语法如下:

keys pattern

exists

判断键是否存在,如果存在返回1,不存在返回0。语法如下:

exists key

type

查看key对应的value的数据类型,如果key不存在则返回none。语法如下:

type key

del

删除指定key的数据,若key存在返1,若key不存在则返0。语法如下:

del key

expire&ttl

设置数据时,如果忘了添加过期时间,我们可以使用expire为数据增加过期时间。语法如下:

expire key seconds

设置好过期时间后我们可以使用tll查看过期剩余时间,如果数据是永不过期则返 -1,如果已过期则返 -2,如果是待过期则返过期剩余时间。语法如下:

ttl key

数据结构

  • redis是key-value的数据结构,每条数据都是⼀个键值对
  • 键的类型是字符串
  • 注意:键不能重复

  • 值的类型分为五种:

    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset

string类型

字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。

set&get

使用 set 方法添加键值,如果添加的键已经存在则修改。语法如下:

set key value

使用 get 方法获取键的值,如果键不存在则返回nil。语法如下:

get key

mset&mget

set和get一次只能设置一个或获取一个值,当我们想一次设置或获取多个是需要使用mset和mget。语法如下

# mset设置多个值
mset key1 value1 key2 value2 ... # mget获取多个值
mget key1 key2 ...

append

向已存在的字符串中追加值,如果键不存在则创建。语法如下:

append key value

setex

上面设置键值的方法过期时间默认是永久,如果想直接设置自动过期的键值需要使用setex方法。语法如下:

setex key seconds value

hash类型

  • hash类型⽤于存储对象,对象的结构为属性、值
  • 值的类型为string

hset&hmset

hset用于设置对象的属性和值,一次可以设置单个属性、值,也可以设置多个属性、值,hash类型的数据对象是可以追加和修改的,如果field不存在则追加,如果存在则修改。语法如下:

# 设置key对象
hset key field1 value1 [field2 value2 ...] # 修改已有属性的值
hset key field1 newValue # 新增属性和值
hset key newField value

说明,在4.0版本之前,hset只能设置单个属性和值,在之后版本hset和hmset功能一致。

hkeys&hget&hmget&hvals

不同类型获取数据的方式不一样,如果没有用对应数据类型的方法获取数据,则会报错 (error) WRONGTYPE Operation against a key holding the wrong kind of value,对于hash类型的数据我们使用4中方法来分别获取对象的属性和值。语法如下:

# 获取指定hash对象所有的属性
hkeys key # 获取⼀个属性的值
hget key field # 获取多个属性的值
hmget key field1 field2 ... # 获取所有属性的值
hvals key

list类型

  • 列表的元素类型为string
  • 按照插⼊顺序排序
  • 可插入重复元素

lpush&rpush

lpush、rpush方法的作用是从左侧、从右侧插入元素。语法如下:

# 从左侧插入数据。当插入第一个值后,第二个值插入到第一个值左侧,第三个值插入到第二个值左侧...
lpush key element [element ...] # 从右侧插入数据。与左侧插入相反
rpush key element [element ...]

linsert key [ before | after ]

在指定元素的前或后插⼊新元素,如果输入的现有元素不存在则会插入失败返-1。语法如下:

linsert key BEFORE|AFTER 现有元素 插入元素

lrange

获取列表指定索引范围内的元素。语法如下:

lrange key start stop
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素
  • 超出索引值不会报错

lset

修改列表指定索引位置的元素。语法如下:

lset key index value
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

  • 超出索引值会报错

lrem

删除列表指定元素。语法如下:

lrem key count value
  • 从列表中删除count次value元素

    • count > 0: 从左侧移除
    • count < 0: 从右侧移除
    • count = 0: 移除所有
  • 删除不存在的值不会报错

set类型

  • ⽆序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 无修改操作

sadd

用于向集合中添加元素,若元素已存在则不会添加返回0。语法如下:

sadd key member [member ...]

smembers

用于获取集合中的元素。语法如下:

smembers key

srem

用于删除集合指定元素。语法如下:

srem key member [member ...]

zset类型

  • sorted set,有序集合
  • 元素为string类型
  • 元素具有唯⼀性,不重复
  • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
  • 无修改操作

zadd

用于向有序集合中添加元素。语法如下:

zadd key [NX|XX] [CH] [INCR] score member [score member ...]

zrange

用于获取指定索引范围内的元素。语法如下:

zrange key start stop [WITHSCORES]
  • start、stop为元素的下标索引
  • 索引从左侧开始,第⼀个元素为0
  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

zrangebyscore

返回score值在min和max之间的元素。语法如下:

zrangebyscore key min max [WITHSCORES] [LIMIT offset count]

zscore

返回指定元素的score值。语法如下:

zscore key member

zrem

删除指定元素。语法如下:

zrem key member [member ...]

zremrangebyscore

删除权重在指定范围的元素。语法如下:

zremrangebyscore key min max

查看中文value

redis的value存储中文后,获取值后显示16进制的字符串,比如:张三 ===>  \xe5\xbc\xa0\xe4\xb8\x89

如果想要查看中文,使用 命令: redis-cli --raw  进入redis获取值即可。

更多命令介绍,请查看https://www.cnblogs.com/progor/p/8540246.html

Redis_客户端命令和数据操作(3)的更多相关文章

  1. MySQL命令行数据操作使用心得(总结版)

    Char 0~255 Varchar 0~65535 text 0~65535(只能保存字符) Longtext 0~4294967295(只能保存字符) CMD登陆mysql mysql -u ro ...

  2. Django 链接MySQL及数据操作

    Django 链接MySQL Django创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置 1.在MySQL中创建好数据库,Django项目不 ...

  3. ZooKeeper学习笔记(四)——shell客户端命令操作

    ZooKeeper客户端命令行操作 启动服务端 [simon@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start 查看状态信息 Using confi ...

  4. MongoDB学习笔记~客户端命令行的使用

    回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...

  5. SQL不同服务器数据库之间的数据操作整理(完整版)

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  6. [SQL]SQL语言入门级教材_SQL数据操作基础(二)

    SQL数据操作基础(初级) netnova 于 -- :: 加贴在 数据库探讨: 为了建立交互站点,你需要使用数据库来存储来自访问者的信息.例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简 ...

  7. SQLServer服务器数据库之间的数据操作(完整版)

    分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...

  8. 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  9. SQL语言-----数据操作

    数据操作 增加数据,insert into 标准格式 insert into 表名 (字段的列表)value(数据列表): 使用set insert into 表名 set 字段1=值,2.....: ...

随机推荐

  1. 移动端(App)项目进行满屏高度的设置

    做移动端App的时候 高度一般会根据页面的元素进行自动设置,不会铺满整个屏幕.通过以下代码实现满屏高度. #app{ width: 100%; height: 100%; position: abso ...

  2. 【力扣】146. LRU缓存机制

    运用你所掌握的数据结构,设计和实现一个  LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果关键字 (key) ...

  3. 【Word】自动化参考文献-交叉引用

    第一步:设置参考文献标号 开始-定义新编号格式中,定义参考文献式的方框编号: 这里注意不要把他原来的数字去掉 第二步:选择交叉引用 插入-交叉引用: 第三步:更新标号 如果更新标号,使用右键-更新域. ...

  4. Nginx日志分析脚本

    目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...

  5. Linux下安装中文字体

    目录 一.Centos系列 二.Ubuntu系列 一.Centos系列 1.安装字体库 yum -y install fontconfig 2.添加中文字体,建立存储中文字体的文件夹 mkdir /u ...

  6. 新建任务(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 新建任务,这操作简单得就跟在Excel的单元格里输入个数据一样,不过也不是一点讲究都没有. 首先得选对视图. 不是所有的视 ...

  7. CF999B Reversing Encryption 题解

    Content 给一个长度为 \(n\) 的字符串 \(s\),执行以下操作: 降序遍历 \(n\) 的所有因子(从 \(n\) 到 \(1\)). 对于每一个因子 \(i\) 翻转字符串 \(s_{ ...

  8. CF628B New Skateboard 题解

    Content 有一个长度为 \(n\) 的数字串 \(s\),求出有多少个子串能够被 \(4\) 整除. 数据范围:\(1\leqslant n\leqslant 3\times 10^5\). S ...

  9. call this的范围

    var f1=function(){this.a="类f1的实例的a属性"}; f1代表一个类: f1.a='对象f1的a属性'; var f2=function(){};//类f ...

  10. 在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息

    在我们常规的调试或者测试的时候,喜欢把一些测试信息打印在控制台或者记录在文件中,对于.netframework项目来说,我们输出控制台的日志信息习惯的用Console.WriteLine来输出查看,不 ...