Redis常用数据结构和操作
- 1.String 存入字符类型
- Set name luowen 设置name = luowen 存储
- Get name 获取设置好的name的值
- Setnx name luowen 设置name键值为luowen 如果存在,则返回0 不存在返回1
- Mset name luowen age 23 salary 233333 设置多个键值对 一块存错 全成功,全失败
- Msetnx name maomao age 23 hoby basketball 如果设置多个键值对中有存在返回失败
- Mget name age salary 获取多个键的值
- Getset name maomao 获取name的值,并设置新的值为maomao
- Setrange name 3 maomao 将键name 3字符和面的进行替换 结果为luomaomao
- Getrange name 3 6 获取键name的值 结果为luomaomao
- Append name .com 给键nane追加.com 结果为luowen.com
- Incr age 设置每个值自增 返回结果为24
- Incrby age 6 给name加上6 如果是负数则键
- Decr 与incr相反
- Decrby 与decrby相反
- Strlen 返回键对应的值得字符长度
- 2.Hash 方便存对象 键值对
- Hset user:001 name luowen 设置哈表名字user 表里面的001 的name 设置为 luowen
- Hsetnx user name maomao 设置哈希表名字中的name 存在,设置不成功
- Hget user:001 name 获取hash表的user的001的值
- Hmset user:003 name maomao age 23 批量设置
- Hmget user:003 name age 批量获取user:003的值
- Hincrby user:003 age 3 给hash表的age值加上3
- Hexists user:003 name 判断hash表中式否存在name的键
- Hlen user:003 返回hash表的所有的字段的数目
- Hkeys user:003 返回hash表的所有字段
- Hvals user:003 返回hash表中所有的值
- Hgetall user:003 返回所有的字段和值
- Hdel user:003 name 对hash的name的值和键删除
- 3.list 链表 (双向链表)
- 1.栈:先进后出 队列:先进先出
- 2.lpush 从头压入
- Lpush list1 “world”
- lpush list1 ‘hello”
- Lrange list1 0 -1 把链表中的数据从0到尾全部取出
- Word
- hello
- 3 rpush 从尾部压入
- rpush list2 “world”
- rpush list2 “luowen”
- lrange list2 0 -1
- world
- luowen
- 4.linsert 插入出入数据
- Rpush list3 luowen
- Rpush list3 maomao
- Lrange list3 0 -1
- Luowen
- Maomao
- Linsert list3 before maomao love
- Lrange list3 0 -1
- Luowen
- Love
- maomao
- Linsert list3 after luowen love
- Lrange list3 0 -1
- Luowen
- Love
- Maomao
- 5 lset 给某个元素复制
- Rpush list5 luowen
- Rpush list5 maomao
- Lset list5 0 “deom”
- Demo
- maomao
- 6 lrem 删除list表中的数据
- Rpush list6 luowen
- Rpush list6 luowen1
- Rpush list6 luowen2
- Rpush list6 luowen3
- Rpush list6 luowen4
- Lrem list6 1 “luowen”
- 删除list6 中值为luowen的值
- 7.ltrim
- Lpush list7 luowen1
- Lpush list7 luowen2
- Lpush list7 luowen3
- Lpush list7 luowen4
- Lpush list7 luowen5
- Ltrim list7 1 2 (1 2 为保留的范围)
- Lpush list7 luowen2
- Lpush list7 luowen3
- 8 lpop 从链表的头部弹出一个元素
- Lpush list8 luowen1
- Lpush list8 luowen2
- Lpush list8 luowen3
- Lpop list8
- Lpush list8 luowen2
- Lpush list8 luowen3
- 9 rpop 从链表的尾部弹出一个元素
- Lpush list8 luowen1
- Lpush list8 luowen2
- Lpush list8 luowen3
- rpop list8
- Lpush list8 luowen1
- Lpush list8 luowen2
- 10 rpoplpush 从一个链表弹出,在从头部压入到另一个链表
- List demo1
- Demo1A
- Demo1B
- Demo1C
- List demo2
- Demo2A
- Demo2B
- Demo2C
- Rpoplpush demo1 demo2
- List demo1
- Demo1A
- Demo1B
- List demo2
- Demo1C
- Demo2A
- Demo2B
- Demo2C
- 11 lindex 返回一个list小标的索引值
- List11
- one
- two
- lindex list11 1(list小标)
- two
- lindex list11 0
- one
- 12 llen 返回这个链表的元素的长度
- 4.set无序集合
- 1 sadd 向集合中插入一条数据
- Sadd myset1 luowen
- 2 srem 删除集合中的一个元素
- Srem myset1 luowen
- 3 smembers 查看集合中的元素
- Smembers myset1
- 4 spop 从集合随机弹出一个元素,返回键值
- 5 sdiff 两个集合的差集 返回两个集合不一样的,根据第一个集合为标准
- Setdemo1
- One
- two
- setdemo2
- one
- three
- sdiff setdemo1 setdemo2
- two(与setdemo2不一样)
- sdiff setdemo2 setdeo1
- three(与setdemo1 不一样)
- 6 sdiffstroe 将两个差集存储到另外一个集合
- Sdiffstore setdemo1 setdemo2 setdemo3
- 将setdemo1 setdemo2 的差集放到 setdemo3中
- 7 sinter 将两个集合的交集
- 8 sinterstore 将两个集合的交集存储到另外一个集合中
- 9 sunion 将两个集合并集
- 10 sunionstore 将两个集合并集并存储到另外一个集合中
- 11 smove 将以个集合中的元素移动到另外一个集合中
- Eg smove myset1 mysetA two mysetB 集合中的two元素移动到mysetB中
- 12 scard 查看集合中元素的个数
- Scard myset1查看myset12元素的个数
- 13 sismember 判断是否是集合中的元素
- Sismember myset13 luowen 判断luowen是否在myset13中的元素
- 14 srandmember myset14 随机取出myset1 中的元素
- 15 zadd 添加到有序集合中区
- Zadd myzsent 1 luowen1
- Zadd myzsent 2 luowen2
- Zadd myzsent 3 luowen3
- Zadd myzsent 4 luowen4
- Zrange myzsent 0 -1 withscores
- 16 zrem 删除有序集合中的元素
- Zrem myzsent luowen1 删除myzsent集合中的luowen1
- 17 zincrby myzsent luowen1 3将myzsent luown1的序号更改为4
- 如果没有,就创建他
- 18 zrank 找到myzsent 对应值得索引
- 19 zrevrank 反过来去索引
- 20 zrangebyscore 返回集合中指定的元素
- Zrangebyscore mysetdeom 2 5 withscores
- 返回mysetdemo中2-5中的元素
- 21 zcount 返回指定空间的数量
- Zcount myset 2 4 返回2 4中的元素个数
- 22 zcard 返回集合中所有元素的个数
- 23 zremrangbyrank 删除集合中指定区间的元素,并将索引进行排序
- 24 zremrangbyscore 删除集合中指定元素,按循序进行排序
- 5 Redis常用命令
- Key-values
- 1 keys * 匹配键所有的键. 模糊匹配 keys my* 取出所有已my开头的键
- 2 exists 判断是否键 exists name判断是否有name这个键是否存在
- 3 del 删除键 del name 删除name的键
- 4 expire 设置过期时间 expire key time
- 5 ttl key 查看键的过期时间
- 6 select database 选择数据库
- 7 move key dababase1 讲key移动dao database1中的数据库中
- 8 persist 取消键的过期时间
- 9 randomkey 随机返回一个键的值
- 10 rename 重命名一个键
- 11 type key 判断key的数据类型
- Server
- 1 ping ping我们的主机能否链接 链接是否存活
- 2 echo 命令 echo demo直接输出
- 3 select 选择数据库 select 0-16个数据库
- 4 quit exit 退出链接
- 5 dbsize 返回数据库的键的个数
- 6 info 返回服务器相关信息
- 7 config get 返回服务配置信息
- 8 flush db 清空数据库
- 9 flushall 删除所有数据库中所有的键
- 6 Redis 高级应用
- 1 在配置文件里面设置 requirepass password
- 2 进入后 auth 密码 进行授权 方法二: 登入或在后面加上 –a 加上密码
- 3 主从复制:
- One: 一个master服务器可以拥有多个slave
- Two: 一个salve可以有多个master 并且还可以与其他的salve相连接
- 配置salve
- 打开salveof注释 并添加主机的ip以及端口
- 主机加了密码的时候还需要配置masterauth 密码
- 4 redis 的事务处理
- 输入:multi 打开一个上下文
- Set age 10
- Set age 144
- -----------------------------------------------------------
- 上面的全部放入队列最后执行
- Exec
- 最后age为144
- 回滚
- Discard
- Watch 监视键的命令
- 5 Redis的持久化
- 方式一: snapshotting (快照)将内存的数据写入到文件中 save 500 32 500秒内有32个键发生变化则发起快照到文件中
- 方式二: append only file 将没次写修改的命令保存到文件中
- 配置:打开append only
- Appendfsync yes
- Appendfsync always 每次都写入
- Appendfsync everysec 每个一秒写入
- Appendfsync no 不写入
- 6 发布和订阅消息
- 订阅:
- Subscribe tv1 tv2 订阅了两个频道
- 发布:
- Publish tv1 luweo
- 注:publish tv1的信息 订阅的信息都可以收到
- 7 虚拟内存
- 方式一:暂时把不使用的数据放到硬盘里面
- 方式二:可以把数据分割到其他的slave数据服务器中
Redis常用数据结构和操作的更多相关文章
- Redis常用数据结构
Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- php数组去重、魔术方法、redis常用数据结构及应用场景
一.用函数对数组进行去重的方法 1.arrau_unique函数的作用 移除数组中重复的值. 将值作为字符串进行排序,然后保留每个值第一次出现的健名,健名保留不变. 第二个参数可以选择排序方式: SO ...
- 【redis】redis常用命令及操作记录
redis-cli是Redis命令行界面,可以向Redis发送命令,并直接从终端读取服务器发送的回复. 它有两种主要模式:一种交互模式,其中有一个REPL(read eval print loop), ...
- Redis 常用数据结构及其控制命令整合
Redis 键值支持5种基本结构,分别是字符串,列表,哈希,集合,有序集合.每一种数据结构都有对应的取值和设值命令,辅助命令,除此之外,还有一些全局命令,用来管理Redis存储的所有 键. 全局命令 ...
- redis常用数据结构解析
Redis是一个开源的Key-Value存储引擎,它支持string.hash.list.set和sorted set等多种值类型.由于其卓越的性能表现.丰富的数据类型及稳定性,广泛用于各种需要k/v ...
- Redis常用命令之操作String类型
场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...
- redis常用命令及操作
说明 连接哨兵模式的redis时,我们连接的哨兵进程的ip和端口,这时很多命令不可用:此时,需要直接连接redis真实的服务器ip和端口:Sentinel模式下,连接真实的ip才可以使用config/ ...
- Redis常用类型数据操作
sortedset: 添加: zadd key score1 member1 score2 member2... zad mysort 90 laosong 100 zhangsan 获得:zsco ...
随机推荐
- 面试题:使用finalkeyword修饰一个变量时,是引用不能变,还是引用的对象不能变?
/* * 问题:使用finalkeyword修饰一个变量时,是引用不能变,还是引用的对象不能变 * 答: * 使用finalkeyword修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内 ...
- php的一个小坑,输出不了json_encode
明明是旧代码,怎么换个地方就不执行了.一开始怀疑是Php的版本. 最后才知道是我的编辑器nodepad++给坑了.或许不是nodepad++的坑.总之,需要转化为utf-8格式编码即可
- 【强网杯2018】逆向hide
这是事后才做出来的,网上没有找到现成的writeup,所以在这里记录一下 UPX加壳,而且linux下upx -d无法解,也无法gdb/ida attach 因为是64位,所以没有pushad,只能挨 ...
- Windows 10正式版历代记:Version 1709、Build 16299都是什么鬼?
Windows 10免费用!创意者更新秋季版激活秘籍 2017年10月中下旬,微软面向正式版用户推送了Windows 10创意者更新秋季版.这是自发布以来,Windows 10的第五个大版本. 在这篇 ...
- Selenium3 Python3 Web自动化测试从基础到项目实战之一启动不同的浏览器及配置
在web自动化中目前selenium作为底层的自动化测试是目前运用最广的,但是各个公司都会在这个基础之上进行修改.从今天开始我们就慢慢从low代码一步一步的学习框架知识. 首先当我们测试环境有了之后我 ...
- System.TypeLoadException: Could not load type 'System.IO.Compression.CompressionLevel' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
1.提示错误信息: zipSystem.TypeLoadException: Could not load type 'System.IO.Compression.CompressionLevel' ...
- python 基础1.1--windows/linux 下安装python
一.windows下安装python 1>windows上python后缀是.msi的,下载下来后,直接双击运行.会在c盘生成python.exe的文件,把python.exe的文件加入到win ...
- Java 学习 day06
01-面向对象(Static关键字) package myFirstCode; /* 静态:static. 用法:是一个修饰符,用于修饰成员(成员变量,成员函数) 当成员被静态修饰后,就多了一个调用方 ...
- 五个知识体系之-SQL学习-第二天
创建数据:INSERT INTO userinfo(userid,username,job,level1,companyage) VALUES ('001','xl001','test','P1',' ...
- 【BZOJ4241】历史研究 分块
[BZOJ4241]历史研究 Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开 ...