Redis

数据类型:

String

Hash

String类型:

一个key对应一个value,二进制安全的。

set方法:设置对应值的value

set name value

get方法:获取对应的值

get name

setnx: 设置value,如果name存在则返回0,设置失败;不存在返回1,设置成功

setnx name value

setex:设置值的有效期:时间为妙

setex name 10 yuzy 设置name的有效期为10秒

setrange:从第几个字符开始替换,返回替换之后的字符串长度

set email tiedayzy@163.com  设置email

setrange email 0 yuzy  从第0个字符开始,替换,替换后的结果为yuzyayzy@163.com

mset:一次设置多个值

mset key1 value1 key2 value2 key3 value3 …

msetnx:(nx  not exit)一次设置多个值,如果有一个设置不成功,则都不成功

incr:递增,每次加1,只能是数子,不然会报错

incr name

incrby :指定每次递增的数量

incrby name 6/-6 设置增加几个

decr:递减

decrby:指定每次递减的数量

append: 字符串连接方法

strlen:字符串长度

get:

getset:设置新的值,并返回原来的值

getrange:获取子字符串

getrange email 0 4

mget:一次获取多个值

HASH:哈希类型

String类型的field和value的映射表。特别适合存储对象,相对于string类型存储对象,hash需要更少的内存。

Hset :设置hash field 为指定值,如果key不存在,则创建

hset user:001 name yuzy 第一个参数为hash的名称,第二个为hash的字段,紧接着为字段对应的值

Hsetnx:key不存在,则成功,存在则设置失败

hset user:001 pass yuzy 成功

hset user:001 name yu 失败

hmset:同时设置一个hash的多个field

hmset user:001 name yuzy pass yuzy

hdel:删除hash里的某一个field

hdel user:001 pass

hincrby: 对某个field自增

hmset user:002 name yuzy pass yuzy age 20

hincrby user:002 age 6

hexists:查看hash里的某个field是否存在

hexits user:002 age

hlen:返回指定hash的field的数量

hlen user:002

hget:获取hash的对应值

hmget:获取一个hash的过个field

hkeys:获取hash里所有的key

hkeys user:001

hvals:获取hash里面的所有的value

hvals user:002

hgetall:获取hash里的所有的key和value

hgetall user:003

list

是一个链表结构,主要功能是push,pop,获取一个范围的所有值。操作中key理解为链表的名字。

Redis中的list每个子元素都是string类型 的  双向链表。可以从头部和尾部进行添加和删除元素。因此既可以做栈,也可以做  队列

lpush:从list的头部,压入一个元素,取出来之后是一个栈的结构

lpush list1 “hello”

lpush list1 “world”

取出结果为  world  hello

rupush:从list的队尾添加元素,先进的先出,所以是一个队列的结构

rpush list2  “hello”

rpush list2 “world”

取出来为hello  world

linsert:在某个位置插入

linsert name before “hello” 123 我这里有两个hello,会发现只有在第一次出现hello的前面添加了123

lset:修改指定位置的值

lset name 1 “yuzy”

lrem :在list中删除,N个与value相同的值,N<0的时候,代表从尾部开始删除,N=0代表全部删除

lrem name 3 hello

ltrim:保留指定key的范围内的数据

ltrim name 1 -1

lpop:从list的头部删除一个元素

lpop name

rpop:从list的尾部弹出一个元素

rpop name

rpoplpush:从一个list的尾部弹出一个元素,并压入到另一个list的头部

rpoplpush l1 l2

lindex:返回名称为key的list中index位置的元素

lindex name 2

lrange:取元素

lrange list 0 -1 0表示从头部第0个元素开始,-1表示尾部的最后一个,所以去不全部元素,

sets类型,无序集合

set是集合,是string类型的无序集合。Set是通过hash和table来实现的,添加、删除、查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这个我们可以实现sns中好友的推荐和blog的推荐。

sadd:向set中添加元素,不允许存在相同元素

sadd set1 one

srem:在set中删除指定的元素

srem set1 one

spop:随机返回并删除集合中的一个元素

smembers:查看set中的元素

smembers set1

sdiff:返回两个集合中不同的部分,是指:在第一个集合中存在第二个集合不存在。

Sdiff s1 set

Sdiffstore: 比较两个集合的差集,并将结果存到另一个集合中

Sdiffstore s2 s1 set 将s1与set的交集,取出来,放到s2中

sinter:获取连个集合的交集

Sinter s1 s2

sinterstore:获取两个集合的交集,并存储到另一个集合

Sinter set s1 s2

sunion:获取连个集合的并集

sunionstore:获取两个集合的并集,并存储

smove:将第一个集合中的元素,移动到第二个集合中

Smove s1 s2 one 将s1中的one元素,移动到s2中

scard :返回集合中的元素个数

Scard s1

sismember:判断某个元素是否在集合中

Sismember s1 one

srandmember:随机返回一个元素

Srandmember s1

zset:有序集合类型

sorted set 是set的一个升级版本,在set基础上增加一个顺序属性。此属性在添加,修改时可以修改。可以理解为有两列的MySQL表,一列为order,一列为value。Key理解为zset的名称

zadd:有序集合中添加元素

zadd zset 1 one

zrem : 删除集合中的对应元素

zrem zset one

zrange:返回集合中的元素

zrange zset 0 -1

zincrby: 如果key对应的元素在zset中存在,则元素增加对应数量,如果不存在,则把increment的值作为key对应的元素值

zrank:返回元素在集合中的索引值

zrevrank:返回集合中的元素列表,并按照score从大到小排序,然后获取对应元素的下标

zrevrank zset one

zrevrange:按照score降序排序

zrevrange set 0 -1 withrange

zrangebyscore:返回对应score范围内的元素

zrangebyscore zset 5 8

zcount:返回给定的score区间中,元素的个数

zcount zset 5 9

zcard:返回集合中的元素个数

zcard zset

zremrangebyrank:按下标来排序,然后删除

zremrangebyrank set 0 2

zremrangebyscore:按添加时设置的score来排序,然后删除

redis常用命令

键值的相关命令

keys:返回对应的key

keys *

exists:对应的key是否存在

del:删除对应的数据

exists:判断是否存在

expire:设置键的过期时间

ttl:查看键的过期时间

select:选择数据库

move:将当前数据库的变量,转移到其他数据库

move name 1 将name,转移到数据库1

persist:取消过期时间

randomkey:随机返回key

rename :重命名

rename  oldname  newname

type:键的数据类型

服务器相关命令

Ping:测试连接是否成功

Echo:打印命令

Select:选择数据库

Quit、exit:退出连接

Dbsize:返回当前数据库中,key的数量

Info:获取服务器的信息

Config get:实时转储收到的请求

Config get * 返回所有的配置信息

Flushdb:删除当前选择数据库中的所有的key

Flushall:删除所有数据库中的所有的键

Redis的高级应用

安全性:

添加密码:

修改redis.conf ;找到requirepass 密码  添加密码

登录可以 直接连接客户端之后,使用  auth 密码来授权

或者打开客户端的时候  redis-cli –a 密码来登录

主从复制:

事务处理:

Redis支持简单的事物,只能保证一个client发起的事务中的命令连续执行,而中间不会插入其他的client命令。

当一个  client 连接发出multi命令的时候,该链接后续的命令不会立即执行,而是先放在队列中,当执行exec命令时,redis会顺序执行队列中的所有命令。

Muliti  exec 事务处理

Discard 命令来取消队列。

数据持久化:

两种方式:一个是快照,aof方式。

发布、订阅信息

Publish发布消息:publish Chanel1 test

Subscribe或者psubscribe接收消息:subscribe Chanel1

虚拟内存

Vm相关配置

redis基础总结的更多相关文章

  1. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  2. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  3. linux redis基础应用 主从服务器配置

    Redis基础应用 redis是一个开源的可基于内存可持久化的日志型,key-value数据库redis的存储分为内存存储,磁盘存储和log文件三部分配置文件中有三个参数对其进行配置 优势:和memc ...

  4. [.net 面向对象程序设计深入](36)Redis——基础

    [.net 面向对象程序设计深入](36)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  5. mysql主从复制、redis基础、持久化和主从复制

    一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroo ...

  6. Redis基础用法、高级特性与性能调优以及缓存穿透等分析

     一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...

  7. Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)--技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis ...

  8. Spring-Boot之Redis基础

    Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...

  9. mongodb,Mysql,redis基础教程

    数据库基础 1:mongodb基础教程 1:pymongo基础教程  2:Mysql基础教程 3:redis基础教程

  10. Redis基础知识点面试手册

    Redis基础知识点面试手册 基础 概述 数据类型 STRING LIST SET HASH ZSET(SORTEDSET) 数据结构 字典 跳跃表 使用场景 会话缓存 缓存 计数器 查找表 消息队列 ...

随机推荐

  1. Unity3d调用iOS陀螺仪

    How to write gyroscope controller with Unity3d http://blog.heyworks.com/how-to-write-gyroscope-contr ...

  2. (Jquery)关于给动态加载的页面元素,绑定事件

    如果使用Jquery给元素绑定事件,一般会用bind,或者类似click函数来直接绑定. 但是对于动态生成的元素,会发现常规绑定无法生效,比如: <div class'div'></ ...

  3. c#数据绑定(4)——向查询中添加参数

    本实例主要练习了ADO.Net 连接到外部数据库的基础上,向查询中添加参数.使用的是ACCESS数据库. 在ACCESS数据库中可以用MSSQL的形式定义操作字符串,也可以采用OLEDB的形式. MS ...

  4. CSS设置DIV背景色渐变

    div{ width: 200px; height: 200px; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=, ...

  5. POJ 3278 Catch That Cow

    注:本人英语很渣,题目大意大多来自百度~=0= 题目大意 农民约翰需要抓住他的牛,他和他的牛在一条直线上(估计是一维生物),约翰在N (0 ≤ N ≤ 100,000)处,他的牛在 K (0 ≤ K ...

  6. Electron-使用Electron开发第一个应用

    使用Electron开发第一个应用 Electron 应用的目录结构如下: app/ ├── package.json ├── main.js └── index.html 新建一个app文件夹 将这 ...

  7. 前端面试题之Html和CSS

    又到了毕业季,很多小伙伴们都到了找工作的时候了,好多小伙伴问我有前端的面试题么?答:没有. 呃呃… … 小伙伴本宝宝真的没有骗你们,我从毕业到现在一直在一家公司没有换过,所以手里压根没有面试题.我们公 ...

  8. EF框架学习

    简称EF,ADO.NET Entity Framework是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案,是微软的一个ORM(面向对象的对象模型和关系型数据库的 ...

  9. .htacess的url重写(支持伪静态)

    html网页纯静态: 1.加载的时候不需要调用数据库,打开速度快,另外减少了服务端脚本的匹配时间.2.减少了服务器对数据响应的负荷.3.从安全角度讲,纯静态网页不易遭受黑客攻击.4.从网站稳定性来讲, ...

  10. FastReport4.6 组件安装

    要完整版不是官方版的试用版.下面包括有的文件 安装前请册除原有的FR控件. 1. "Tools|Environmet options..."中的"Library" ...