1、字符串(String)

基本操作:SET(设置)、GET(获取)、DEL(删除)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> set msg hello
OK
127.0.0.1:> get msg
"hello"
127.0.0.1:> del msg
(integer)
127.0.0.1:> get msg
(nil)

2、列表(List)

基本操作:LPUSH/RPUSH(将元素推入列表左端/右端)、LPOP/RPOP(从列表左/右弹出元素)、LINDEX(获取指定位置上的元素)、LRANGE(获取指定范围内的元素)、LTRIM key_name index1 index2(修剪,只保留范围内元素,包括起止元素)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> rpush list
(integer)
127.0.0.1:> rpush list
(integer)
127.0.0.1:> lpush list
(integer)
127.0.0.1:> lrange list - #可以用来获取当前列表中所有元素
) ""
) ""
) ""
127.0.0.1:> lpop list
""
127.0.0.1:> rpop list
""
127.0.0.1:> lindex list
""
127.0.0.1:> lindex list
(nil)
127.0.0.1:> lrange list -
) ""
127.0.0.1:> get list
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:> del list
(integer)
127.0.0.1:> lrange list -
(empty list or set)
127.0.0.1:> rpush list
(integer)
127.0.0.1:> lrange list -
) ""
) ""
) ""
) ""
127.0.0.1:> ltrim list -
OK
127.0.0.1:> lrange list -
) ""
) ""
) ""

3、集合(Set)

集合与列表的不同之处在于,集合储存的元素是无序且各不相同的。

基本操作:SADD(添加元素)、SREM(移除元素)、SISMEMBER(给定元素是否在集合中)、SMEMBERS(返回集合中所有元素)、SCARD(获取集合内元素数量)、SRANDMEMBER key_name [count](随机返回1[count]个元素,count为正数时,元素不会重复,为负数时,元素可能重复多次)、SPOP(随机移除并返回某个元素)、SMOVE key1 key2 item(如果key1中存在item,则将item加入key2并移除key1中的item)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> sadd set
(integer) #返回添加元素中原本set中没有的元素数量
127.0.0.1:> sadd set
(integer)
127.0.0.1:> sadd set
(integer)
127.0.0.1:> smembers set
) ""
) ""
) ""
127.0.0.1:> sismember set
(integer)
127.0.0.1:> sismember set
(integer)
127.0.0.1:> srem set
(integer)
127.0.0.1:> smembers set
) ""
) ""
127.0.0.1:> srem set
(integer)
127.0.0.1:> scard set
(integer)
127.0.0.1:> srandmember set
""
127.0.0.1:> srandmember set -
) ""
) ""
) ""
) ""
) ""
127.0.0.1:> srandmember set
) ""
) ""
127.0.0.1:> srandmember set
(empty list or set)
127.0.0.1:> spop set
""
127.0.0.1:> smembers set
) ""
127.0.0.1:> smove set set2
(integer) 0 #SMOVE成功返回1,失败返回0
127.0.0.1:> smove set set2
(integer)
127.0.0.1:> smembers set2
) ""
127.0.0.1:> smembers set
(empty list or set)

4、散列(hash)

散列储存多个键值对之间的映射,显然键需要各不相同。

Redis不支持嵌套,故散列嵌套只能间接实现。

基本操作:HSET/HMSET(关联给定的键值对/多个键值对)、HGET/HMGET(获取给某个/多个定键的值)、HGETALL(获取所有键值对)、HDELL(删除给定键的键值对)、HLEN(获得键值对数量)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> del hash
(integer)
127.0.0.1:> hset hash a
(integer)
127.0.0.1:> hmset hash b c
OK
127.0.0.1:> hget hash a
""
127.0.0.1:> hget hash e
(nil)
127.0.0.1:> hmget hash a e
) ""
) (nil)
127.0.0.1:> hgetall hash
) "a"
) ""
) "b"
) ""
) "c"
) ""
127.0.0.1:> hdel hash a b
(integer)
127.0.0.1:> hgetall hash
) "c"
) ""
127.0.0.1:> hdel hash a
(integer)
127.0.0.1:> hlen hash
(integer)

5、有序集合(Sorted Set)

有序集合储存键值对,其中,键必须各不相同,称为成员(member),值须为浮点数,称为分数(score)

基本操作:ZADD(添加带分数的成员或更新成员的分数)、ZRANGE/ZREVRANGE [WITHSCORES](根据给定的位置,获取按分数升序/降序排列的有序集合中的成员[分数])、ZRANGEBYSCORES/ZREVRANGEBYSCORES  [WITHSCORES](获取有序集合在给定分数范围内的成员[分数])、ZREM(移除成员)其他操作传送门

root@localhost:~# redis-cli
127.0.0.1:> zadd zset i1
(integer)
127.0.0.1:> zadd zset i2 i3
(integer)
127.0.0.1:> zrange zset -
) "i2"
) "i1"
) "i3"
127.0.0.1:> zrange zset - withscores
) "i2"
) ""
) "i1"
) ""
) "i3"
) ""
127.0.0.1:> zrangebyscore zset withscores
) "i2"
) ""
) "i1"
) ""
127.0.0.1:> zrem zset i1
(integer)
127.0.0.1:> zrangebyscore zset withscores
) "i2"
) ""

Redis学习笔记(一)五种数据类型的更多相关文章

  1. Redis学习笔记(五)- 数据类型之set类型

    Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...

  2. (C/C++学习笔记) 十五. 构造数据类型

    十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...

  3. 【转】Redis学习笔记(五)如何用Redis实现分布式锁(2)—— 集群版

    原文地址:http://bridgeforyou.cn/2018/09/02/Redis-Dsitributed-Lock-2/ 单机版实现的局限性 在上一篇文章中,我们讨论了Redis分布式锁的实现 ...

  4. Objective-C学习笔记(五)——数据类型与限定词

    如同其它不论什么的编程语言一样,想要更深入的学习.必需要了解该门语言的数据类型与限定词. OC的数据类型例如以下: (1)int:整型:   int a;      int b=2;     int ...

  5. Redis学习笔记(五) 基本命令:Hash操作

    原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...

  6. Redis 学习笔记(五)高可用之主从模式

    上一节提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力.但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求.对于整体服务而言这是无法容忍的,因此我们可以使用多个服务 ...

  7. redis的入门篇---五种数据类型及基本操作

    查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key //设置key为10s 查看key还剩多少 ...

  8. Redis学习笔记(四)-数据类型之list类型

    redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...

  9. Redis学习笔记(三)-数据类型之string类型

    string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...

  10. Redis学习笔记(五)——数据结构之哈希(Hash)

    一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...

随机推荐

  1. bzoj1319

    数论 这个幂指数很难搞,那么我们取个log 去取log得有底数,那么自然这个底数能表示出所有的数 原根满足这个性质 那么我们求出原根,再去log 变成k*ind(x)=ind(a) (mod phi( ...

  2. jquery easyui 实战总结

    (2012-09-26 10:22:24) 转载▼ 标签: it 分类: Javascript 一.tree 1.根据node id查找对应的node,然后选择该节点:                 ...

  3. git 系统中 post-receive 钩子不能正常执行 git pull 解决方法

    有一个需求是本地git在push到远程 git repo 之后,在远程服务器上自动在/dir/foo下执行 git pull 的操作.想来是一个很简单的需求,不就是在远程的 foo.git 仓库中的 ...

  4. Android开发--Activity

    一:Activity生命周期 (1)Activity生命周期中的几种方法: protected void onCreate(Bundle savedInstanceState): protected  ...

  5. SpringMVC笔记- 不配置HandlerMapping

    使用SpringMVC框架时发现有的配置了HandlerMapping,而有的没有,那么它们有什么区别呢?不配置能不能正常使用框架呢? 下面我们看一看不配置任何HandlerMapping时,框架会使 ...

  6. 4-1数据类型转换的基本概念 & 4-2 & 4-3数据类型转换案例 & 4-4习题

    4-1数据类型转换的基本概念 253是int类型的,赋值给长整型的n 这种就是强制的类型转换 自动类型转换又叫做饮食类型转换,因为他的转换我们是看不到的 实线表示无数据丢失的 虚线在转换时, doub ...

  7. Node.js 内置模块fs(文件系统)

    fs模块的三个常用方法 1.fs.readFile() -- 读文件 2.fs.writeFile() -- 写文件 3.fa.stat() -- 查看文件信息 fs模块不同于其它模块的地方是它有异步 ...

  8. golang开发:(二)安装 Golang

    当然了我们的安装都是在vagrant里面安装,vagrant ssh.不用虚拟机了,本机安装当然也可以. Mac 安装 访问下载地址,下载 go1.12.5.darwin-amd64.pkg,双击下载 ...

  9. ubuntu 安装 RPostgreSQL 库

    其实大家在Linux 的R 中安装其他库,完全可以使用R 自带的安装方式,只是这个 RPostgreSQL 库需要用到 postgresql 的lib 库与include 头文件,所以才有若干个步骤去 ...

  10. 115 Distinct Subsequences 不同子序列

    给定一个字符串 S 和一个字符串 T,求 S 的不同的子序列中 T 出现的个数.一个字符串的一个子序列是指:通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串.(譬如," ...