redis缓存数据架构实战
redis命令参考:http://redisdoc.com/

与memcache对比


redis安装配置
yum安装
yum -y install redis
源码安装

PS:make报错**问题:**zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
执行命令
make MALLOC=libc
把配置文件redis.conf拷贝至文件夹src
修改配置文件redis.conf把端口改成6380
修改允许后台启动
daemonize yes
启动
./redis-server ./redis.conf
yum安装的可以使用systemctl启动 怎么把源码安装的也改成这样启动(思考题)
进入redis
redis-cli
源码安装的去src目录下找这个命令
指定端口进入
./redis-cli -p 6380

创建一个字符串变量 (key是foo值是minseo的键值对)
set foo minseo
获取
get foo

获取系统缓存中所有的key
keys *
配置文件

日志开关相当于MySQL的二进制日志不是error日志等日志
Bind保护模式
修改配置文件启动安全机制
修改配置文件
protected-mode yes
设置密码
requirepass YOUPASSWORD

重启
进入后无法查看(提示没有认证)

加认证后启动就能查看了
redis-cli -p 6380 -a root

关闭redis 进入以后shutdown (建议大写)

redis消息类型
运行配置
获取当前配置
CONFIG GET *
修改配置(修改内存中配置实例重启后无效需要修改配置文件)
CONFIG SET loglevel "notice"
redis数据存储


持久化策略(可以关闭不持久化直接从数据库读取)

持久化存储的文件为dump.rdb备份直接备份该文件即可
压缩

同步

数据类型

常规操作

追加

mset同时设置多个值

mget同时取多个值
mget name foo

strlen返回字符串的长度

incr针对数值加1(作为计数器使用)

decr针对数值减1

exists检查是否存在(可以在set前检查是否存在)

incrby增加指定的数
INCRBY age 2

设置一个hash

在设置一个age和sex

hmset hmget设置返回多个值
hgetall返回所有值

hget返回单独的项

hmget同时返回多项

del删除

hdel删除hash中其中一个字段

PS:hash适合存储对象
hincrby加值(没有减的需要减则使用负数)

列表

lpush创建列表

lrange便利展示列表(列表下标从0开始类似python)

lpush从前面插入数据

rpush从后面插入数据

rpop移除列表末尾数据(返回数据)

lpop删除第一个数据

lset修改列表

lindex根据下标返回值

linsert插入值(after在后面插入值before在前面插入值)

redis缓存数据架构实战的更多相关文章
- 基于 abp vNext 和 .NET Core 开发博客项目 - 使用Redis缓存数据
上一篇文章(https://www.cnblogs.com/meowv/p/12943699.html)完成了项目的全局异常处理和日志记录. 在日志记录中使用的静态方法有人指出写法不是很优雅,遂优化一 ...
- 《SOD框架企业级应用数据架构实战》新书简介和预定
SOD框架“企业级”应用数据架构实战 ----致敬平凡的程序员! 历时两年写成, 两大MVP: 张善友. 刘冰(宇内流云) JAVA技术专家 申毅 联合推荐! 10年磨一剑:汇聚作者超过10年的架构工 ...
- 4-11 CS后台项目-4 及 Redis缓存数据
使用Redis缓存数据 使用Redis可以提高查询效率,一定程度上可以减轻数据库服务器的压力,从而保护了数据库. 通常,应用Redis的场景有: 高频查询,例如:热搜列表.秒杀 改变频率低的数据,例如 ...
- 在NodeJS中使用Redis缓存数据
Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb.其在使用上也有别于一般的数据库. node_redis redis驱动程序多使用 node_redis 此模块可搭载官方的 hiredi ...
- 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
之前我有博客也尝试过使用redis,在实际的项目中确实作用挺大的.至少对于数据的频繁读取来说都起着至关重要的作用. 但是随着技术的学习,慢慢的业务要复杂起来,以后也许会用到redis集群,所以在这边查 ...
- PHP Redis 缓存数据
// 注:只是在此做下记录,有兴趣的可以参考,不做实际教程文档// 配置文件define('CONFIG', [ 'redis-server' => '127.0.0.1', 'redis-po ...
- 致敬平凡的程序员--《SOD框架“企业级”应用数据架构实战》自序
“简单就是美” “平凡即是伟大” 上面两句话不知道是哪位名人说的,又或者是广大劳动人民总结的,反正我很小的时候就常常听到这两句话,这两句话也成了我的人生格言,而且事实上我也是一个生活过得比较简单的平凡 ...
- Redis缓存数据之简单逻辑
并发不高的情况: 读: 读redis->没有,读DataBase->把DB数据写回redis,有的话直接从redis中取: 写: 写DataBase->成功,再写redis: 并发高 ...
- redis缓存数据表
直观上看,数据库中的数据都是按表存储的:更微观地看,这些表都是按行存储的.每执行一 次select查询,数据库都会返回一个结果集,这个结果集由若干行组成.所以,一个自然而然 的想法就是在Redis中找 ...
随机推荐
- Swing组件都采用MVC设计模式
Swing组件都采用MVC(Model-View-Controller,既模型-视图-控制器)设计模式,从而可以实现GUI组件的显示逻辑和数据逻辑的分离,允许程序员自定义Render来改变GUI组件的 ...
- gen_server的模板
-module(first_gen_server).-behaviour(gen_server).-export([init/1, handle_call/3, handle_cast/2, hand ...
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码.fileC ...
- c++ 参赛设置
void report(LogWriter& lw); 代表引用原对象 void report(LogWriter lw); 代表重新拷贝构造一个对象
- .net cs后台刷新aspx页面的四种方式
一:Response.Redirect(Request.Url.ToString()); 二:Response.Write("<script language=javascript&g ...
- c# 实现javascript中的escape和unescape
我们在JS经常使用escape和unescape,其实C#也可以的. string s = "中文好伟大的"; Console.Write(Microsoft.JScript.Gl ...
- php 中的 short_open_tag 的作用
在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>). 同时,只有开启这个才可以使用 <?= 以代替 < ...
- linux 添加交换分区
[操作简介] 增加swap分区方法: 1.新建磁盘分区作为swap分区 2.用文件作为swap分区 (操作更简单,我更常用) 下面介绍这两种方法:(都必须用root权限,操作过程应该小心谨慎.) ...
- osgEarth中的StringUtils头文件中有很多关于字符串的操作
- vue2.0+element-ui(01简单点的单页面)
前言: 在<Vue.js权威指南>刚出版的时候,自己就作为一名前端粉捧了一把场,可是真是应了那句“出来混,总是要还的“这句话了,那时候信心满满的买来书想要认真研究,最终却还是把它搁浅了.直 ...