Redis的基本操作,基础知识

作者: 数据库信息  发布:2019-10-18

数据库应用的腾飞历史

1;在网络时代来到在此之前,公司的有的里面新闻保管系列,贰个单个的数据库的实例就足以应付系统的功能要求

单数据库实例

2:随着系统访谈客户的扩张,数据量的叠合,单个数据库的实例已经满足不断系统往往读取数据(权限的辨证,系统的暗许配置)的须求。

缓存 (ehCache/MemCached) 数据库实例

 

3: 缓存纵然能够减轻数据库的读取压力 ,不过数据量的写入压力不断增大 ,那个时候大家要求动用数据库主从机制进行读写分离

缓存 (ehCache/MemCached) 主从数据库 读写抽离

 

4: 数据量再度增大,读写分离之后,主数据库的写库的下压力现身瓶颈

缓存 (ehCache/MemCached) 主从数据库 读写分离 分库分表

 

5:互连网和大额的有时的来林,关系型数据库已经无法很好的存款和储蓄一些并发性大,实时性高,并且格式不稳固的数目

Nosql数据库 主从数据库 读写分离 分库分表

二:NoSql数据库的四大分类

键值(Key-Value)存储

列存储

文档数据库

图形数据库

图片 1

NoSql的特点

易扩展

灵活的数据模型

大数据量,高性能

高可用

Redis怎么用

官方网址地址 : https://redis.io/

 

 

安装redis

Linux系统下安装redis

安装进程:

  (1)安装编写翻译器:yum install gcc-c

  (2)下载Redis源码并上传出服务器

  (3)解压Redis压缩包:tar -zxvf *redis*

  (4)步向Redis目录进行编写翻译:make

  (5)安装Redis:make PREFIX=/user/local/redis install

  (6)将redis.conf拷贝到Redis安装目录:cp redis.conf /user/local/redis

  (7)进入安装目录,改造redis.conf文件:vim redis.conf --> daemonize no 改为 yes

  (8)运维redis后端情势:./bin/redis-server ./redis.conf

 

 

 

Redis特性

连锁天性

大部分据库

redis事务

多数据: 
默许是0号数据库

select 0 ,当然也得以运动数据库 move myset 1 正是将0中的myset移动到myset

MULTI 
标识一个事务块的初始。

EXEC 
奉行全数专门的学问块内的通令。

DISCARD 
撤除事务,扬弃进行职业块内的装有命令。

JAVA操作redis ----- jedis

存款和储蓄list常用命令:

两端增多 查看列表 两端弹出 获取列表成分个数 扩张命令

命令: lpush key value[value] 
lpush mylist3 a b c 1 2 3

命令: lrange key start stop 
收取: lrange mylist3 0 5 结果正是 3 2 1 c b a 那和java 中list集合有一些差别 
当然也足以如此取值 lrange mylist3 0 -1 ,结果和上边如故一直以来的。0代表第叁个因素,而-1 代表最后八个要素

命令: 
lpop key 移出并收获列表的首先个因素

llen key 获取列表长度

rpop key 移出并收获列表的结尾叁个因素

lpush key value 插入到已存在列表底部,

rpush key value 插入到已存在列表尾部

lpushx key value 同理也是插入到列表尾部

rpushx key value 同理也是插入到列表尾巴部分

lpushx mylist3 x ,通过翻看 lrange mylist 0 -1 得 x 3 2 1 a b c

Redis有何用

Redis的关键成效 : 快

以电商网站为例,Redis在系统架构中的位置

图片 2

存储String

常用命令:

赋值: set company imooc ,取值就可以经过 get company 得到 imooc

getset命令: getset company baidu 结果:imooc 然后 get company 结果: baidu .getset key value 就是先得到key后改变value

去除 del key ,比方: 先设置 key 和value set person jack ,del person 重返数字1,要是再去赢得get person 结果: nil 代表不设有

强盛命令

取值

数值增减

依次增加 incr num 私下认可就是0,而get num 的结果便是 1 。

同理 decr num2 暗许也是0 而get num 的结果正是 -1 。

incrby num 5 正是经过 num 5的结果。平日num暗许是0,未来应有就是5

同理decrby num2 5 结果就是-5

基本概念

NOSQL :Not Only Sql 泛指非关系型数据库  Redis/ MongoDB/ Hbase

关系型数据库: mysql/ oracle/ sybase /sqlServer

Key的概念注意点:

绝不过长

不用过短

集合的命名标准

Redis的中国共产党第五次全国代表大会数据类型以致选取

String/Hash/List/Set/sorted set

字符串类型 String

列表类型 list

聚拢类型 set

稳步集中类型 sorted set

散列类型 hash

 

读取速度每秒一千0/S

写入速度8100/S

Key不要过长(占用内部存款和储蓄器 最大可容纳数据长度为512M) 不要过短(收缩可阅读性)

 

* String 

K-V格式中 V是多少个字符串对象

Set k1 v1

Get k1

Del k1

 

Incr num (自增1 举个例子未有设置值默以为1)

Decr num (自减1)

Incrby num 5 (自增5)

Decrby num 5 (自减 5)

Append num 4 (追加4)再次来到字符串长度位数 *不是数学 是拼接

 

使用场景: 秒杀商品/商品点赞

Set mobile_huawei 1000

Decr mobile_huawei

 

 

* Hash

K-V格式中 V是一个Hash类型 其实java里面的Map<String,object>

Hset student _bluesky id 1

Hset student _bluesky name bluesky

Hset student _bluesky sex boy

 

赋值命令

Hset myhash username summer

Hset myhash age 18

Hmset myhash username admin age 20

 

 

 

取值命令

Hget myhash username

Hget myhash username age

Hgetall myhash

 

删除命令

Hdel myhash username age

Del myhash (删除myhash)

Hincrby myhash age 5 (增加5)

 

其他命名

Hexists myhash username 推断myhash中是不是带有username满含再次来到1不然重临0

Hlen myhash 获取myhash中的字段数

Hkeys myhash 获取具备的 key

Hvals myhash 获取具备的值

 

使用场景: 电商网址的商品详细消息

Hmset iphone:0001 id  1 name 6s price 3999 imageurl /pic/iphone.png

Hget  iphone:0001  name

Hgetall iphone:0001

 

 

 

* list

K-V格式中 V是一个list类型 其实java里面的LinkedList

 

把他充任二个竹子,两侧是挖潜了

从左插入记录  lpush summer_book  1 2 3

从右插入记录  rpush summer_book  4 5 6

从左弹出记录  lpop summer_book 1

从右弹出记录  lpush summer_book 1

列表里面的记录顺序(竹子)

 

 3  2  1  4  5  6

 

选取场景: 商品的评论和介绍

Lpush t_shirt:comment good1/Lpush t_shirt:comment good2/Lpush t_shirt:comment good3

Lrange t_shirt:comment 0 10

 

 

 

Lpush mylist 1 2 3 从左插入记录

XC90push mylist a b c 从右插入记录

 

Lrange mylist 开头索引地方停止索引地方(-1尾声五个)

Lpop mylist 右侧弹出(相当于删除)

酷路泽pop mylist 侧面弹出(约等于删除)

Lpush mylist 侧面插入

LX570push mylist 右边插入

Lrem mylist 删除几个因素 删除哪个成分

Lset mylist 索引地方 插入的值

Linsert mylist before 哪个值后边要插入的值

Linsert mylist after 哪个值后面要插入的值

Rpoplpush 集合1 集合2

 

 

 

 

* Set

K-V格式中 V是二个set类型  set是冬天的/set里面包车型客车因素具有独一性、

Sadd summer_friends blue_sky bigVoice mosheng mike

Sadd maybe_friends blue_sky bigvoice tdd world okyoung

运用场景: 独立IP实行网址投票 /微信生活圈的一块儿亲密的朋友

 

 

Sadd myset a b c 添加 a b c

不能够增添重复的值

Srem myset a c 移除a c

 

Smembers myset 查看全体值

Sismember myset a 查看集结里面是还是不是带有a包蕴再次来到1 不然再次回到0

 

Sadd myset2 a b c 差集运算

Sadd myset3 a c 1 交集运算

Sdiff myset2 myset3  myset2 和myset3相差的是b

Sinter myset2 myset3  myset2 和myset3会友的是a c

Sunion myset2 myset3 并集运算 合併集合 同样的会去掉(值无法再度)

Scard myset 获取会集数量

Srandmember myset 随机获得会集中的一个值

Sdiffstore myset4 myset2 myset3 将myset2 和myset3中离开的值放到myset4中间

Sinterstore myset4 myset2 myset3 将myset2 和myset3中结识的值放到myset4里头

Sunionstore myset4 myset2 myset3 将myset2 和myset3中相并的值放到myset4里头

 

 

 

* sorted-set 

打闹排行 火热话题中动用

K-V格式中 V是一个Zset类型  zset是铁板钉钉的? 如何做到有序

 

使用场景: 商品的行销排行的榜单

zadd phone_sales  100  huawei  99 iphone  98 vivo  97 oppo

Zrange phone_sales 0 -1 with score  从小到大

Zrevrange phone_sales 0 -1 with score  从大到小

 

 

 

设置键值对 set myKey abc

Redis的高端知识: Redis的长久化 Redis的基本 Redis集群

图片 3

 

 

如有侵害权益,请联系:13212115095

 

存储Hash

String key和value的map容器

每八个Hash能够积存42949672九十五个键值对

hset key field value 命令:

例子:

赋值 
hset myhash username jack

hset myhash age 18

里面 myhash 正是key 而username 和age都以字段名称,而背后的值时势字段里的值。那和map的集纳有少数有别于

hset myhash2 username jack age 18

删除: hdel myhash2 结果正是: empty list or set

万一在跟着去删除 hdel myhash2 username 结果 0 
删除未有的字段就重临0

Redis是什么

Redis是一个开源的,高质量,C语言开辟的 ,键值对(key-value)存款和储蓄数据的NOSQL数据库。

Redis持久化

RDB方式

AOF方式

持久化使用办法: 
凯雷德DB长久化 AOF悠久化 无持久化 同期选择WranglerDB和AOF

Redis的施用场景

直播平台 亲密的朋友列表

新品秒杀/12306抢票  --记录货品的仓库储存记录

电商网址的商品排名  ---利用有类别表存款和储蓄商品的行销情状

网址商品的点赞数/研讨数/网址访问记录 --高并发 但是记录不纯粹

多少过期管理  -redis对数据足以设置生命周期(单点登陆)

布满式集群架构中的session抽离

 

Jedis介绍

Jedis是redis 官方首推的Java客商端开辟包

Jedis-jar url

下载地址: 

                #Redis 的数据结构 

多种数据类型:

字符串(String) , 哈希(hash) ,字符串列表(list) , 字符串集合(set),有序字符串集结(sorted set) 
常用的是字符串和哈希

图片 4

Redis的Keys的经过操作

keys * 查看全体的key 
del my1 my2 my3 删除有些key

exists my1 查看key是还是不是留存 重回0是存在,1不设有

rename company newcompany 重命名叫newcompany

expire key 一千 为key设置过期时间

TTL key 
以秒为单位,重临给定 key 的剩余生存时间(TTL, time to live)。

NoSql概述

为何需求NoSql

高并发读写

海量数据的高效用存款和储蓄和走访

高可扩充性和高可用性

开发二个 cmd 窗口 使用cd命令切换目录到 C:redis 运行 redis-server.exe redis.windows.conf 。

 

本文由金沙澳门官网发布于数据库信息,转载请注明出处:Redis的基本操作,基础知识

关键词: 金沙澳门官网

上一篇:在centos使用redis几个坑
下一篇:没有了