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

  1. 连上之后使用auth wodemima111

  2. ./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基操的更多相关文章

  1. redis实操-sentinel

    本文主要记录一些操作步骤,作为自己学习的一个记录,也供虚拟机上学习redis的人参考. 实操篇,可以参考 http://redis.cn/ 主从复制实操 在test目录下新建配置进行练习 1.mkdi ...

  2. Redis的基操

    redis:通常BOLEAN操作类型,操作成功返回1,操作失败返回0 通常如果往设置的key插入值,但是这个key不存在,redis则会创建 向redis里的某个key插入多个值时,值和值之间用空格隔 ...

  3. Redis java操作客服端——jedis

    1. Jedis 需要把jedis依赖的jar包添加到工程中.Maven工程中需要把jedis的坐标添加到依赖. 推荐添加到服务层.happygo-content-Service工程中. 1.1. 连 ...

  4. Mongodb3.6 基操命令(二)——如何使用help

    前言 在上一篇文章Mongodb3.6 快速入门(一)中,我们主要使用两个命令: 1.mongod #启动服务 2.mongo #连接mongodb 对于刚接触mongo的人来说,该怎么给命令传递参数 ...

  5. mysql基操

    创建数据表: create table tt1( id int, name varchar(20), age int,sex boolean ); insert into tt1 values(1,& ...

  6. MongoDB基操

    基本概念 database 数据库 包含多个collection collection 集合 包含多个文档document(类JSON对象) document 文档 一个文档对象中包含多个key-va ...

  7. JavaScript之基操

    局部变量前面要加var   如 var name = "jiahuai" 全局变量 name = "jiahuai" 写完每一行JavaScript代码用;号隔 ...

  8. MySql的基操勿六

    2018/12/6 星期四 19:34:07 authot by dabaine 数据库注释; -- 这就是注释 /*.....*/ 这也是注释 创建库; create databse [if not ...

  9. 小白学 Python 爬虫(19):Xpath 基操

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

随机推荐

  1. JY播放器【蜻蜓FM电脑端,附带下载功能】

    今天给大家带来一款神器----JY播放器.可以不用打开网页就在电脑端听蜻蜓FM的节目,而且可以直接下载,对于我这种强迫症患者来说真的是神器.我是真的不喜欢电脑任务栏上面密密麻麻. 目前已经支持平台(蜻 ...

  2. 2.5星|《哈佛商学院管理与MBA案例全书》:书名太唬人了,依据中文经管书汇编整理而成

    哈佛商学院管理与MBA案例全书(套装十册) 看到最后,列出的参考书目中全部是中文经管书,才明白这本书不是哈佛商学院出版的,是国内的编辑做的汇编.参考书目中除了中文经管书之外,还有一套<哈佛商学院 ...

  3. 3.5星|《哈佛商学院最受欢迎的领导课》:讲给CEO的管理学常识、常见错误和改进方法

    哈佛商学院最受欢迎的领导课 英文版出版于2011年,还不算旧.中信2013年出过一版,这版估计是英文书版权过期后重新购买了再出版. 全书以写给CEO的口吻讲了许多管理常识,包含一些CEO容易犯的问题和 ...

  4. c# 修改pdf

    继续引用spire的dll. 1.代码如下: PdfDocument doc = new PdfDocument(); doc.LoadFromFile("wen.pdf"); P ...

  5. Codeforces Beta Round #14 (Div. 2) D. Two Paths 树的直径

    题目链接: http://codeforces.com/contest/14/problem/D D. Two Paths time limit per test2 secondsmemory lim ...

  6. 七周七语言之使用prolog解决爱因斯坦斑马难题

    如果你想获得更好的阅读体验,可以前往我在 github 上的博客进行阅读,http://lcomplete.github.io/blog/2013/06/28/sevenlang-prolog/. 目 ...

  7. springmvc值传递

    1.页面向后台传值 A.HttpServletRequest方式: package com.rong.controller; import javax.annotation.Resource; imp ...

  8. 通过js读取元素的样式

    /* * 通过元素.style.样式只能获取到内联样式的值,就是style写在元素里面的值,不能获取嵌入式和外联样式的值 * 所以如果要获取除内联样式后的值,就不能通过这个获取 * alert(box ...

  9. css声明的优先级

    选择器的特殊性 选择器的特殊性由选择器本身的组件确定,特殊性值表述为4个部分,如0,0,0,0,0 一个选择器的具体特殊性如下确定 1.对于选择器给定的ID属性值,加0,1,0,0 2.对于选择器中给 ...

  10. 【BioCode】读文件夹以发现缺失文件

    代码说明: 使用单个蛋白质的txt计算PSSM生成的结果为单个的PSSM文件. 但是由于一些原因(如蛋白质序列过长),会导致一些蛋白质txt文件无法计算出pssm,为了找到这些没有计算出pssm的蛋白 ...