Redis学习笔记(一)五种数据类型
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学习笔记(一)五种数据类型的更多相关文章
- Redis学习笔记(五)- 数据类型之set类型
Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...
- (C/C++学习笔记) 十五. 构造数据类型
十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...
- 【转】Redis学习笔记(五)如何用Redis实现分布式锁(2)—— 集群版
原文地址:http://bridgeforyou.cn/2018/09/02/Redis-Dsitributed-Lock-2/ 单机版实现的局限性 在上一篇文章中,我们讨论了Redis分布式锁的实现 ...
- Objective-C学习笔记(五)——数据类型与限定词
如同其它不论什么的编程语言一样,想要更深入的学习.必需要了解该门语言的数据类型与限定词. OC的数据类型例如以下: (1)int:整型: int a; int b=2; int ...
- Redis学习笔记(五) 基本命令:Hash操作
原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...
- Redis 学习笔记(五)高可用之主从模式
上一节提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力.但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求.对于整体服务而言这是无法容忍的,因此我们可以使用多个服务 ...
- redis的入门篇---五种数据类型及基本操作
查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key //设置key为10s 查看key还剩多少 ...
- Redis学习笔记(四)-数据类型之list类型
redis的list类型其实就是一个每个子元素都是string类型的双向链表.所以[lr]push和[lr]pop命令的算法时间复杂度都是O(1).另外list会记录链表的长度.所以llen操作也是O ...
- Redis学习笔记(三)-数据类型之string类型
string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte ...
- Redis学习笔记(五)——数据结构之哈希(Hash)
一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...
随机推荐
- python在三引号中使用变量
- 华为CodeCraft2018 周进展
上周: python验证lstm,效果不好.很多拟合的是直线.C++抄了个lstm,输出也是直线,不知道是程序的问题,还是模型的问题. 尝试bp神经网络求解.代码是抄的.回看天数是写死的,隐层只有一层 ...
- Java int与String互相转化大全
int -> String //int 转化才 string int num = 123456; //方法一 会产生两个String对象 String s1 = num+"" ...
- java集合框架之HashSet
参考http://how2j.cn/k/collection/collection-hashset/364.html#nowhere 元素不能重复 Set中的元素,不能重复重复判断标准是: 首先看ha ...
- PHP文件操作功能函数大全
PHP文件操作功能函数大全 <?php /* 转换字节大小 */ function transByte($size){ $arr=array("B","KB&quo ...
- Qt-MVC图形视图框架分解
前面在<Qt-MVC图形视图框架出识>中我们了解了Qt图形视图框架中三个最基本的类,弄清他们的关系,本片小文,我们将对QGraphicsView,QGraphiceScene,QGraph ...
- 【废弃中】JavaScript 式与运算符
创建: 2017/09/25 更新: 2019/01/14 修改标题 [JavaScript 式与运算符] -> [JavaScript 式与主要Object的方法] 更新: 2019/02/ ...
- 洛谷P3723 [AH2017/HNOI2017]礼物(FFT)
传送门 首先,两个数同时增加自然数值相当于只有其中一个数增加(此增加量可以小于0) 我们令$x$为当前的增加量,${a},{b}$分别为旋转后的两个数列,那么$$ans=\sum_{i=1}^n(a_ ...
- Android Activity生命周期(转)
转自 http://blog.csdn.net/android_tutor/article/details/5772285
- iOS开发 - CocoaPods的常见使用方式
1 CocoaPods 的安装 1.1 作用: 帮助管理和维护第三方框架,快速的搜索到第三方框架, 然后自动集成到工程里面来, 并编译成一个libPod.a的静态库给我们项目用 1.2 理解: 1. ...