Redis基操
Redis
key-value类型的缓存数据库
指定IP和端口连接redis:
./redis-cli -h ip -p port
Redis基本操作命令
| 命令 | 返回值 | 简介 |
|---|---|---|
| ping | PONG | 测试是否连接到Redis服务端 |
| dbsize | 当前数据库key的数量(int) | 查看key的数量 |
| select db | select index(默认0-15) | redis默认初始化16个数据库,selet可进行切换 |
| flushdb | OK | 删除当前数据库的所有数据 |
| exit/quit | 退出redis连接 |
Redis操作key的命令
| 命令 | 语法 | 介绍 |
|---|---|---|
| keys | keys pattern | 查找所有pattern匹配的key, pattern可使用通配符*,? |
| exists | exists key[key...] | 判断key是否存在,存在返回1 不存在返回0 |
| expire | expire key seconds | 设置key的生存时间,单位秒 |
| ttl | time to live | 返回key的存活时间 -1key永生 -2key不存在 |
| type | type key | 查看key的数据类型 none string list set zset hash |
| del | del key[key...] | 删除key 返回删除的数量,不存在的key忽略 |
Redis的五种数据类型
| 数据类型 | 介绍 |
|---|---|
| string | 能存储任意格式字符串 包括图片 JSON对象等 最大512M |
| hash | 适合存储对象,类似python dict java Map |
| list | 有序可重复的list集合 |
| set | 无序不可重复的set集合 |
| zset | sorted set 加了排序功能的set集合 |
Redis对string的操作
| 操作 | 介绍 |
|---|---|
| set key value | 向当前数据库添加键值对 |
| get key | 查询key对应的value |
| incr/decr key | 当key对应的value是数字类型字符串时可用,将value值加/减1 |
| append key xxx | 在key对应的value的基础上追加xxx |
| strlen key | 返回key对应value字符串的长度 |
| getrange key start end | 对value字符串进行截取 |
| setrange key offset xxx | 从value的offset开始用xxx替换 |
| mset | mset k1 v1 k2 v2 k3 v3... |
| mget | mget k1 k2 k3 .... |
Redis对hash的操作
| 操作 | 介绍 |
|---|---|
| hset key field value | hset boy name zhansan 创建hash 设置field-value |
| hget key filed | 找到key对应的hash 去除file对应的value |
| hmset key f1 v1 f2 v2 ... | 类似mset |
| hmget key f1 f2 f3 ... | 类似mget |
| hgetall key | 查询key对应的hash对象的所有field-value |
| hdel key | 删除key对应的hash |
| hkeys key | 返回key对应的hash的所有filed |
| hvals key | 返回key对应的hash的所有value |
| hexists key field | 判断field是否存在 |
Redis对list的操作
| 操作 | 介绍 |
|---|---|
| lpush key value[value...] | 将一个或多个值插入到列表的左边,返回新list长度 |
| rpush | 从右边插入 |
| lrange key start stop | list截取 |
| llen key | 返回list长度 |
| lindex key index | 返回下标为index的list元素 |
| lrem key count value | count=0 删所有与value相等的值,count>0从左开始第一个 count<0从右开始第一个 |
| lset key index value | 实际上是修改下标为index的元素 list长度不变 |
| linsert key BEFORE/AFTER e value | 相对元素e的前后位置插入 |
| lpop/rpop key | 删除左边/右边第一个元素 |
Redis对set类型的操作
| 操作 | 介绍 |
|---|---|
| sadd key e1[e2...] | 将一个或多个元素插入到key对应的set集合中 |
| smembers key | 获取key对应集合中的所有元素 |
| sismember key e | 判断e是否存在于key对应的集合,存在返回1 |
| scard key | 返回key对应集合中元素个数 |
| srem key e1[e2...] | 删除集合中一个OR多个元素,不存在的忽略 |
| srandmember key [count] | 随机从集合中取出count个元素 count<0数据可能重复 |
| spop key [count] | 从集合中随机删除count个元素 |
Redis对zset的操作
| 操作 | 介绍 |
|---|---|
| zadd key score1 e1[score2 e2...] | 在key对应的zset中添加一个或多个值 |
| zrange key start stop [withscores] | 截取集合 -1表示最后元素 withscores表示返回e和score |
| zrem key e1 e2... | 删除一个或多个值 不存在的忽略 |
| zcard key | 返回集合元素数量 |
| zrangebyscore key min max withscores | min<=score<=max 截取 |
| zcount key min max | min<=score<=max 数量统计 |
Redis 安全设置
设置密码
redis.conf 中的requirepass
requirepass wodemima111
访问有密码的redis
连上之后使用auth wodemima111
./redis-cli -h ip -p port -a wodemima111
绑定ip
redis.conf #bind 127.0.0.1
可以在此设置多个以逗号分隔的允许访问IP
修改默认端口
redis.conf port 6379
Redis事务
| 关键字 | 介绍 |
|---|---|
| multi | 开启事务,接下来的命令会放入事务队列中但不执行 |
| exec | 执行事务队列中的所有命令 |
| discard | 放弃事务,情况事务队列 |
| watch | 监控一个或多个key的值有没有被其他事务修改,被修改会导致事务被放弃 |
| unwatch | 取消对所有key的监视 |
事务队列中的命令有语法错误
事务会被放弃
事务队列中的命令语法正确但执行出错
事务正常提交
watch机制 保证数据的一致性
相当于mysql中的乐观锁
Redis基操的更多相关文章
- redis实操-sentinel
本文主要记录一些操作步骤,作为自己学习的一个记录,也供虚拟机上学习redis的人参考. 实操篇,可以参考 http://redis.cn/ 主从复制实操 在test目录下新建配置进行练习 1.mkdi ...
- Redis的基操
redis:通常BOLEAN操作类型,操作成功返回1,操作失败返回0 通常如果往设置的key插入值,但是这个key不存在,redis则会创建 向redis里的某个key插入多个值时,值和值之间用空格隔 ...
- Redis java操作客服端——jedis
1. Jedis 需要把jedis依赖的jar包添加到工程中.Maven工程中需要把jedis的坐标添加到依赖. 推荐添加到服务层.happygo-content-Service工程中. 1.1. 连 ...
- Mongodb3.6 基操命令(二)——如何使用help
前言 在上一篇文章Mongodb3.6 快速入门(一)中,我们主要使用两个命令: 1.mongod #启动服务 2.mongo #连接mongodb 对于刚接触mongo的人来说,该怎么给命令传递参数 ...
- mysql基操
创建数据表: create table tt1( id int, name varchar(20), age int,sex boolean ); insert into tt1 values(1,& ...
- MongoDB基操
基本概念 database 数据库 包含多个collection collection 集合 包含多个文档document(类JSON对象) document 文档 一个文档对象中包含多个key-va ...
- JavaScript之基操
局部变量前面要加var 如 var name = "jiahuai" 全局变量 name = "jiahuai" 写完每一行JavaScript代码用;号隔 ...
- MySql的基操勿六
2018/12/6 星期四 19:34:07 authot by dabaine 数据库注释; -- 这就是注释 /*.....*/ 这也是注释 创建库; create databse [if not ...
- 小白学 Python 爬虫(19):Xpath 基操
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
随机推荐
- sql 命令使用简单记录
半个月前就想记下用过的SQL命令的!!! 主题: 按时间查询: https://blog.csdn.net/hejpyes/article/details/41863349 左关联: se ...
- 人脸辨识,用树莓派Raspberry Pi实现舵机云台追踪脸孔
影像辨识作为近年最热门的专业技术之一,广泛用于智慧监视器.车电监控.智慧工厂.生物医疗电子等等:其中,人脸辨识是一个很重要的部分,网络上已经有相当多的资源可供下载使用:于是我们使用舵机云台作为镜头旋转 ...
- 使用Photon引擎进行unity网络游戏开发(三)——网络游戏大厅及房间
使用Photon引擎进行unity网络游戏开发(三)--网络游戏大厅及房间 Photon PUN Unity 网络游戏开发 连接到Photon ConnectUsingSettings 设置你的客户端 ...
- 3星|李开复《AI·未来》:中国创业公司有独特优势,人工智能可能会加剧社会的不平等与不稳定
主要内容:作者对自己一些经历的回顾,对中美两国人工智能行业的回顾与展望. 作者认为中国的创业公司比美国节奏更快工作更拼命,深圳在硬件创新上远远领先于美国,中国创业公司们走出了一条跟美国不同的路. 作者 ...
- selenium 列表循环定位方法。
话不多说,直接上代码. 就是循环第一层,然后拼接,然后继续循环,继续屏接,任你多少层都不是问题. def c_select(self, values, text): """ ...
- 各web服务器的特点和优势
1.Tomcat 和 Jetty 面向java语言 天生就是重量级的web服务器.性能一般 2.IIS 只能在windows平台运行,windows作为服务器在稳定性与其他一些性能上不如类unix操作 ...
- 剑指Offer66题的总结、目录
原文链接 剑指Offer每日6题系列终于在今天全部完成了,从2017年12月27日到2018年2月27日,历时两个月的写作,其中绝大部分的时间不是花在做题上,而是花在写作上,这个系列不适合大神,大牛, ...
- Material Safety Data Sheet,MSDS - 化学品安全说明书
化学品安全说明书(Material Safety Data Sheet)MSDS,国际上称作化学品安全信息卡,是化学品生产商和经销商按法律要求必须提供的化学品理化特性(如PH值,闪点,易燃度,反应活性 ...
- scrum立会报告+燃尽图(第二周第三次)
此作业要求参考: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2248 一.小组介绍 组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶.公 ...
- 对首师大研究生院的UI分析
我们分析的是首都师范大学研究生院的UI界面 网站链接http://grad.cnu.edu.cn/index.htm 学校设计和石家庄铁道大学的界面类似,都是有一个大的置顶的名字,将学校或者学院的名字 ...