存储结构

  1. 字符类型
  2. 散列类型
  3. 列表类型
  4. 集合类型
  5. 有序集合
  6. 可以为每个key设置超时时间;
  7. 可以通过列表类型来实现分布式队列的操作
  8. 支持发布订阅的消息模式
  9. 提供了很多命令与redis进行交互
  10. 数据缓存(商品数据、新闻、热点数据)
  11. 单点登录
  12. 秒杀、抢购
  13. 网站访问排名…
  14. 应用的模块开发

功能

简单

redis的应用场景

redis的安装

  1. 下载redis安装包
  2. tar -zxvf 安装包
  3. 在redis目录下 执行 make
  4. 可以通过make test测试编译状态
  5. make install [prefix=/path]完成安装

启动停止redis

./redis-server ../redis.conf

./redis-cli shutdown

如果有lua脚本执行了死循环,需要用 ./redis-cli shutdown nosave 才能关闭

以后台进程的方式启动,修改redis.conf   daemonize =yes

连接到redis的命令

./redis-cli -h 127.0.0.1 -p 6379

允许远程连接的设置

将 bind 127.0.0.1 使用#注释掉,改为# bind 127.0.0.1(bind配置的是允许连接的ip,默认只允许本机连接;若远程连接需注释掉,或改为0.0.0.0)

将 protected-mode yes 改为 protected-mode no(3.2之后加入的新特性,目的是禁止公网访问redis cache,增强redis的安全性)

其他命令说明

Redis-server 启动服务

Redis-cli 访问到redis的控制台

redis-benchmark 性能测试的工具

redis-check-aof aof文件进行检测的工具

redis-check-dump  rdb文件检查工具

redis-sentinel  sentinel 服务器配置

多数据支持

默认支持16个数据库;可以理解为一个命名空间

跟关系型数据库不一样的点

  1. redis不支持自定义数据库名词
  2. 每个数据库不能单独设置授权
  3. 每个数据库之间并不是完全隔离的。 可以通过flushall命令清空redis实例面的所有数据库中的数据

通过  select dbid 去选择不同的数据库命名空间 。 dbid的取值范围默认是0 -15

使用入门

  1. 获得一个符合匹配规则的键名列表

keys pattern  [? / * /[]]

keys mic:hobby

  1. 判断一个键是否存在 , EXISTS key
  2. type key 去获得这个key的数据结构类型

各种数据结构的使用

字符类型

一个字符类型的key默认存储的最大容量是512M

赋值和取值

SET key  value

GET key

递增数字
incr key

 

错误的演示

int value= get key;

value =value +1;

set key value;

key的设计

对象类型:对象id:对象属性:对象子属性

建议对key进行分类,同步在wiki统一管理

短信重发机制:sms:limit:mobile
138。。。。。 expire

 

incryby key increment  递增指定的整数

decr key   原子递减

append key value   向指定的key追加字符串

strlen  key  获得key对应的value的长度

mget  key key.. 
同时获得多个key的value

mset key value  key value 
key value …

setnx

列表类型

list, 可以存储一个有序的字符串列表

LPUSH/RPUSH: 从左边或者右边push数据

LPUSH/RPUSH key value value …

{17 20 19 18 16}

llen num  获得列表的长度

lrange key  start stop   ;  索引可以是负数, -1表示最右边的第一个元素

lrem key count value 删除指定索引的值

lset key index value 设置指定索引的值

LPOP/RPOP : 取数据,取后数据即被从列表删除

应用场景:可以用来做分布式消息队列

散列类型

hash key value  不支持数据类型的嵌套

比较适合存储对象

person

age  18

sex   男

name mic

..

hset key field value

hget key filed

hmset key filed value [filed value …] 
一次性设置多个值

hmget key field field …  一次性获得多个值

hgetall key  获得hash的所有信息,包括key和value

hexists key field 判断字段是否存在。 存在返回1. 不存在返回0

hincryby

hsetnx

hdel key field [field …] 删除一个或者多个字段

集合类型

set 跟list 不一样的点。 集合类型不能存在重复的数据。而且是无序的

sadd key member [member ...] 增加数据; 如果value已经存在,则会忽略存在的值,并且返回成功加入的元素的数量

srem key member  删除元素

smembers key 获得所有数据

sdiff key key …  对多个集合执行差集运算

sunion 对多个集合执行并集操作, 同时存在在两个集合里的所有值

有序集合

zadd key score member

zrange key start stop [withscores] 去获得元素。 withscores是可以获得元素的分数

如果两个元素的score是相同的话,那么根据(0<9<A<Z<a<z) 方式从小到大

网站访问的前10名。

redis的事务处理

MULTI 去开启事务

set userinfo:name victor 返回QUEUED

set userinfo:age 18 返回 QUEUED

EXEC 去执行事务

exec 提交执行事务
在执行中才报错的语句,事务不会回滚。

过期时间

expire key seconds

ttl  获得key的过期时间

发布订阅

publish channel message

subscribe channel [ …]

分片策略:codis . twmproxy

redis实现分布式锁

数据库可以做 activemq

缓存 -redis  setnx

zookeeper

redis笔记1的更多相关文章

  1. 【Redis笔记(四)】 Redis数据结构 - list链表

    原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/50573605 经过前面的介绍,我们学习了Redis中string字符串.hash ...

  2. redis笔记之一

    NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中.而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要 ...

  3. Redis 笔记 01:入门篇

    Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  4. redis笔记总结之redis介绍

    一.Redis介绍: redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开源的.轻量级的.非关系型的,直到现在一直不断完善的一款NoSql数据库.具体的介绍大家可以 ...

  5. Redis笔记(1)数据结构与对象

    1.前言 此系列博客记录redis设计与实现一书的笔记,提取书本中的知识点,省略相关说明,方便查阅. 2.基本数据结构 2.1 简单动态字符串SDS(simple dynamic string) 结构 ...

  6. 2020ubuntu1804server编译安装redis笔记(一)及报make test错误解决办法

    redis的大名我想大家都不陌生,今天在ubuntu server上进行编译安装,虽然apt也可以安装,但作为内存数据库,redis又是c开发的,编译安装,对机器的适应和性能更好. 安装笔记如下 第1 ...

  7. 2020ubuntu1804server编译安装redis笔记(三)启动服务和使用redis

    第一篇笔记记录了ubuntu1804server编译安装redis5,接下来要配置redis5了 网址:https://www.cnblogs.com/qumogu/p/12435694.html 第 ...

  8. redis笔记补充

    redis补充 这篇文章是redis入门笔记的补充. 1.info命令 用来显示服务的信息. info命令可以跟下面的选项: server: 关于 Redis 服务器的一些信息 clients: 客户 ...

  9. redis笔记

    redis字符串 : 存储基本的一个键值对. redis哈希 : Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型. 一个哈希表可以存在多个键值对,可对键值进行增删 ...

  10. Redis笔记,安装和常用命令

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/96.html?1455870708 一.redis简单介绍 redis是N ...

随机推荐

  1. java读取文本文件内容

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/128 java读取文本文件内容 今天写代码写着要调试一个很 ...

  2. [转][读书笔记]深入理解java虚拟机

    原文地址:http://blog.csdn.net/hanekawa/article/details/51972259 第二章 Java内存区域与内存溢出异常 一,运行时数据区域: 1.        ...

  3. python爬虫中文乱码问题(request方式爬取)

    https://blog.csdn.net/guoxinian/article/details/83047746   req = requests.get(url)返回的是类对象 其包括的属性有: r ...

  4. 五分钟搞懂什么是B-树(全程图解)【转】

    前戏 我们大家都知道动态查找树能够提高查找效率,比如:二叉查找树,平衡二叉查找树,红黑树.他们查找效率的时间复杂度O(log2n),跟树的深度有关系,那么怎么样才能提高效率呢?当然最快捷的方式就是减少 ...

  5. Matplotlib基础 可视化绘图 学习笔记

    简单的绘图 1.确定画布并画线 import matplotlib.pyplot as plt #静态绘图 fig = plt.figure() ax = fig.add_subplot(345) # ...

  6. AtCoder - 2140 (思维)

    题意 https://vjudge.net/problem/AtCoder-2140 每次告诉你新的a:b,计算最后最小的a+b. 思路 如 3 2 3 1 1 3 2 先令a=2,b=3,发现新的为 ...

  7. Mybatis 的 mapper配置文件,XXXXMapper.xml

    存着一个配置文件,方便开发使用.主要是XML标签. <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...

  8. NOIP2007 奖学金 结构体排序

    是结构体排序的练习题,可供选手们巩固结构体排序的一些相关内容. 关于结构体排序 1.结构体定义 struct student { int num,a,b,c,sum; }p[]; 2.结构体初始化 ; ...

  9. Python实现网络多人聊天室 - Windows

    项目名称:多人聊天室项目结构: client.py server.py settings.py项目思路:服务端接收客户端连接,客户端发送信息给服务端,服务端将信息发送给所有客户端.项目实现:主进程负责 ...

  10. 【2019.7.24 NOIP模拟赛 T1】道路建设(road)(水题)

    原题与此题 原题是一道神仙不可做题,两者区别在于,原题不能有重边和自环. 然而,这题可以有重边... 于是这题就变成了一道大水题. 此题的解法 考虑如何构造. 对于\(n\le10^4\)的情况: 对 ...