Redis_客户端命令和数据操作(3)
更多命令请查找: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)的更多相关文章
- MySQL命令行数据操作使用心得(总结版)
Char 0~255 Varchar 0~65535 text 0~65535(只能保存字符) Longtext 0~4294967295(只能保存字符) CMD登陆mysql mysql -u ro ...
- Django 链接MySQL及数据操作
Django 链接MySQL Django创建的项目自带的数据库是SQLite3,我们想要链接MySQL的话,需要更改settings.py中的配置 1.在MySQL中创建好数据库,Django项目不 ...
- ZooKeeper学习笔记(四)——shell客户端命令操作
ZooKeeper客户端命令行操作 启动服务端 [simon@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start 查看状态信息 Using confi ...
- MongoDB学习笔记~客户端命令行的使用
回到目录 当我们从MongoDB网站下载安装包之后,它会伴随有一系列的工具,服务器程序mongod是我们耳熟能详的了,客户端mongo和性能检测mongostat我们可能就没有用过了,今天主要是介绍一 ...
- SQL不同服务器数据库之间的数据操作整理(完整版)
---------------------------------------------------------------------------------- -- Author : htl25 ...
- [SQL]SQL语言入门级教材_SQL数据操作基础(二)
SQL数据操作基础(初级) netnova 于 -- :: 加贴在 数据库探讨: 为了建立交互站点,你需要使用数据库来存储来自访问者的信息.例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简 ...
- SQLServer服务器数据库之间的数据操作(完整版)
分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...
- 转载-SQL不同服务器数据库之间的数据操作整理(完整版) .
---------------------------------------------------------------------------------- -- Author : htl25 ...
- SQL语言-----数据操作
数据操作 增加数据,insert into 标准格式 insert into 表名 (字段的列表)value(数据列表): 使用set insert into 表名 set 字段1=值,2.....: ...
随机推荐
- List如何一边遍历,一边删除?
1.新手常犯的错误 可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的: public static void main(String[] args) { List<String& ...
- ASP.NET Core中使用漏桶算法限流
漏桶算法是限流的四大主流算法之一,其应用场景各种资料中介绍的不多,一般都是说应用在网络流量控制中.这里举两个例子: 1.目前家庭上网都会限制一个固定的带宽,比如100M.200M等,一栋楼有很多的用户 ...
- Nginx配置缓存
目录 一.简介 二.配置 三.其它参数 忽略Cache-Control头部 缓存post请求 缓存动态内容 使用Cookie作为缓存键的一部分 手动清理缓存 支持断点续传 设置查看缓存命中与否 一.简 ...
- Python绘制面积图
一.Python绘制面积图对应代码如下图所示 import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans ...
- Linux_ShellCode总结
在寄存器都是非理想值情况下(shellcode可根据环境具体触发时寄存器的值做长度调整),我本着最优通用的原则,整理了Linux下32位和64位最短通用shellcode的编写. 32位 有" ...
- others_babystack
一道泄露canary+rop常规的题. 这道题让我学习到了,原来canary的最后一位是\x00,又因为是小端存储,所以在内存中我位置是在开头的. 来,下载文件检查一下保护. 开启了canary和nx ...
- [BUUCTF]REVERSE——helloword
helloword 题目是安卓逆向.安卓逆向工具下载地址 用APKIDE打开附件,ctf+f调出检索版,检索main函数,能看到flag字符串 flag{7631a988259a00816deda84 ...
- Sysenter/Kifastcallentry hook 检测与恢复
关于Sysenter.Kifastcallentry.中断之类的内核入口hook技术早就烂大街了,可是对hook的检测与恢复代码却是寥寥无几,一切抛开代码将原理的行为都是耍流氓. 下面以Sysente ...
- Table.Sort排序…Sort(Power Query 之 M 语言)
数据源: 任意查询表 目标: 对其中一列数据进行排序 操作过程: 选取对象>[主页]>[排序]>[升序排序] 选取对象>[主页]>[排序]>[降序排序] M公式: ...
- 🏆【CI/CD技术专题】「Docker实战系列」(1)本地进行生成镜像以及标签Tag推送到DockerHub
背景介绍 Docker镜像构建成功后,只要有docker环境就可以使用,但必须将镜像推送到Docker Hub上去.创建的镜像最好要符合Docker Hub的tag要求,因为在Docker Hub注册 ...