3 Redis 的常用五大数据类型
2016-12-21 14:54:20
该系列文章链接
NoSQL 数据库简介
Redis的安装及及一些杂项基础知识
Redis 的常用五大数据类型(key,string,hash,list,set,zset)
Redis 配置文件介绍
Redis 持久化之RDB
Redis 持久化之AOF
Redis 主从复制
Redis 事务
Redis 发布与订阅
Redis jedis 介绍
Redis 相对其它类型的 NoSQL 数据库而言,更出彩的一点就是有更多的数据类型共使用者选择。
学习任意一门技术,都应该从官网入手,Redis官网(https://redis.io/),Redis 中文网(http://www.redis.cn/)(华为建立的)
本系列文章只讲常用命令,对于完整命令及信息可以翻阅 Redis 命令参考(http://redisdoc.com/index.html)
既然 Redis 属于键值对类型数据库,那么接下来来看看独属于键的命令吧
一.key
1.keys pattern:在本数据库中查找对应某种格式的键
找到本数据库中所有的键(* 代表1个或多个字符):keys *

2. 找到 study 名称下所有的数据库:keys study:*

3.exists key:判断 key 键是否存在
查找 study:string:k2 和 study:string:k4 键值是否存在:
4.move key db:将 key 键移到 db 数据库中
5.type key:求出 key 键的类型
6.expire key seconds:设置 key 的过期时间
7.ttl key :查询 key 的过期时间
二. string
string 是字符串,key:value 键值对
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
1.set/get/append string_name value
incr/incrby decr/decrby
若是 value 仅是数字,则可以用 incr/incrby decr/decrby 对 value 做加减操作

2.strlen
求字符串的长度

3.getrange/setrange
截取总串中的部分字符串

4.setex/setnx
setex:创建键值和过期时间

setnx:set if not exists

5.mset/mget/msetnx
对多个 string 进行操作

这张图是关于三个命令的操作,以及一些特殊情况
mset key value [key]:若值已存在,则 value 覆盖旧值,如果不希望的话,则使用 msetnx
msetnx:只会在所有给定 key 都不存在的情况下进行操作
6.getset
先取值再设置值

三.hash
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
1.hset/hget/hmset/hmget/hgetall/hdel

2.hlen
同上
3.hexists
同上
4.hincrby/hincrbyfloat

5.hsetnx

四.list
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
1.lpush/rpush/lrange/lpop/rpop


lpush 入 list,可以把 list 当作栈来用
rpush 入 lsit,可以把 list 当作队列来用
2.llen/lindex

3.lrem
lrem key count value:删除 key 中重复的值

4.ltrim
ltrim key begin end

5.rpoplpush

6.lset key index value
linsert key before/after value new_value
这两个是在 list 中间插入的命令,效率很低,有兴趣的可以自己试试
8.list 总结
它是一个字符串链表,left、right都可以插入添加。
如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很差了。
五.set
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
set 是一个集合,既然是集合,那么就是无序,不可重复的。
1.sadd/srem/smembers/sismember

2.scard

3.srandmember

4.spop

5.smove
把 set1 中的元素 移到 set2 中

6.数学集合类
差集:sdiff
并集:sunion
交集:sinter

六.zset:sorted set
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
1.zadd/zrem/zscore

2.zcard/zcount

3.zrange//zrangbyscore/zrank

zrangebyscore 命令仔细使用一下
http://redisdoc.com/sorted_set/zrangebyscore.html
4.zrevrange/zrevrangebyscore/zrevrank
这个自己去写写看
3 Redis 的常用五大数据类型的更多相关文章
- Redis常用五大数据类型
1.String(字符串) string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个red ...
- 4-4 Redis 的常用配置
2016-12-22 15:30:43 本篇文章属于Redis 系列第四篇文章:Redis 配置文件介绍 该系列文章链接 NoSQL 数据库简介 Redis的安装及及一些杂项基础知识 Redis 的常 ...
- Redis系列---操作命令及数据类型
本章将简单介绍下,Redis里面常用的数据类型以及我们常用到的一些命令,let's go 准备环境: Redis 详细见上一个章节 我们接下来操作的命令用的是Redis自带的客户端工具,在安装red ...
- redis五大数据类型以及常用操作命令
Redis的五大数据类型 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意 ...
- 解析Redis操作五大数据类型常用命令
摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- 《Redis入门指南(第二版)》读书思考总结之Redis五大数据类型
热身:系统级命令 1. 获得符合规则的键名列表 KEYS pattern 模式匹配 产品的缓存:product+"."+....; => keys product* 订单的 ...
- Redis数据库 01概述| 五大数据类型
1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...
- Redis五大数据类型详解
关于Redis的五大数据类型,它们分别为:String.List.Hash.Set.SortSet.本文将会从它的底层数据结构.常用操作命令.一些特点和实际应用这几个方面进行解析.对于数据结构的解析, ...
随机推荐
- TCPDF说明文档
TCPDF说明文档 一.首先调用TCPDF文件 require_once('tcpdf.php'); 二.实例化TCPDF类 页面方向(P =肖像,L =景观).测量(mm).页面格式 $pdf = ...
- Validator验证框架
Validator验证框架 系统分析 在设计Validator验证框架时,需要明确以下问题. (1)当用户没有输入数据时,弹出英文提示信息. (2)当用户输入的数据长度大于系统设置的数据长度,弹出英文 ...
- 权限系统设计-day02
练习中的问题: 1,<s:url action="employee_input" />这个标签用来让struts自动生成请求的路径,struts生成的路径是一个全路径, ...
- Winsock编程基继承基础(网络对时程序)
#include <iostream> #include <stdio.h> #include "InitSock.h" using namespace s ...
- 深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存
项目中有些业务方法希望在有缓存的时候直接从缓存获取,不再执行方法,来提高吞吐率.而且这种情况有很多.如果为每一个方法都写一段if else的代码,导致耦合非常大,不方便后期的修改. 思来想去,决定使用 ...
- [Swift]LeetCode814. 二叉树剪枝 | Binary Tree Pruning
We are given the head node root of a binary tree, where additionally every node's value is either a ...
- zookeeper使用详解(命令、客户端、源码)
1. zookeeper使用详解(命令.客户端.源码) 1.1. 前言 zookeeper我们常用来做分布式协调中间件,很多时候我们都接触不到它的原理和用法,我对他的了解也仅限于知道它可以做分布式 ...
- ubuntu---网络管理
网络配置文件 在 /etc/network/interface auto eth0 iface eth0 inet static address x.x.x.x netmask 255.255.255 ...
- 浅谈React
浅谈react react是什么?其官网给出了明确定义:A JavaScript library for building user interfaces,一个用于构建用户界面的JavaScript库 ...
- Java-SSM框架页面时间格式转换
在JSP中,列表查询绑定时间时,会出现以下的时间格式,那样看起来的话,感觉... 那如何转换成“yyyy-MM-dd HH:mm:ss”格式呢?--很简单,在JSP头顶加上 <%@ taglib ...