Redis相关知识

NoSQL数据库

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
NoSQL数据库包括: Cassandra、Mongodb、CouchDB、Redis、 Riak、Membase、Neo4j 和 HBase

Redis 持久化之RDB和AOF

Redis介绍

  • REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

  • Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  • 它通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型。

Redis数据类型

Redis作为一种高级的key-value存储系统,其键值所支持的数据类型包括5种:string(字符串类型)、hash(哈希类型)、list(列表类型)、set(集合类型)、zset(sorted set有序集合类型)

Redis 与其他 key - value 缓存产品有以下三个特点

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

  • Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

  • Redis支持数据的备份,即master-slave模式的数据备份。

使用Redis有哪些好处

  • 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

  • 支持丰富数据类型,支持string,list,set,sorted set,hash

  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

  • 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

Redis命令

键(key) 命令

  • del命令
127.0.0.1:6379> keys *
1) "rank"
2) "count"
3) "sentence"
127.0.0.1:6379> del rank
(integer) 1
127.0.0.1:6379> keys *
1) "count"
2) "sentence"
127.0.0.1:6379>
  • exists命令
127.0.0.1:6379> keys *
1) "count"
2) "sentence"
127.0.0.1:6379> exists tt
(integer) 0
127.0.0.1:6379> keys *
1) "count"
2) "sentence"
127.0.0.1:6379> set tt 'I would have to learn,little by little,to exist alone.'
OK
127.0.0.1:6379> exists tt
(integer) 1
127.0.0.1:6379> get tt
"I would have to learn,little by little,to exist alone."
  • ttl和expire命令
127.0.0.1:6379> keys *
1) "sentence"
2) "tt"
3) "count"
127.0.0.1:6379> ttl sentence
(integer) -1
127.0.0.1:6379> expire sentence 15
(integer) 1
127.0.0.1:6379> ttl sentence
(integer) 9
127.0.0.1:6379> ttl sentence
(integer) -2
127.0.0.1:6379> keys *
1) "tt"
2) "count"
  • persist命令
127.0.0.1:6379> keys *
1) "tt"
2) "count"
127.0.0.1:6379> expire count 80
(integer) 1
127.0.0.1:6379> ttl count
(integer) 75
127.0.0.1:6379> ttl count
(integer) 68
127.0.0.1:6379> persist count
(integer) 1
127.0.0.1:6379> ttl count
(integer) -1
127.0.0.1:6379> get count
"12"
127.0.0.1:6379> keys *
1) "tt"
2) "count"
  • rename命令
127.0.0.1:6379> keys *
1) "tt"
2) "count"
127.0.0.1:6379> get tt
"I would have to learn,little by little,to exist alone."
127.0.0.1:6379> rename tt study
OK
127.0.0.1:6379> get study
"I would have to learn,little by little,to exist alone."
127.0.0.1:6379> keys *
1) "study"
2) "count"

字符串(String) 命令

  • set命令、get命令
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set sentence "Billi Holiday`s reputation as a great jazz-blues singer rests on her ability to give emotional depth to her songs."
OK
127.0.0.1:6379> get sentence
"Billi Holiday`s reputation as a great jazz-blues singer rests on her ability to give emotional depth to her songs."
  • incr命令
127.0.0.1:6379> set count 10
OK
127.0.0.1:6379> incr count
(integer) 11
127.0.0.1:6379> incr count
(integer) 12
127.0.0.1:6379> get count
"12"
  • incrby命令
127.0.0.1:6379> set rank 30
OK
127.0.0.1:6379> incrby rank 30
(integer) 60
127.0.0.1:6379> get rank
"60"

哈希(Hash) 命令

  • hset、hget命令
127.0.0.1:6379> keys *
1) "study"
2) "count"
127.0.0.1:6379> hset myhash weather beautiful
(integer) 1
127.0.0.1:6379> hget myhash weather 
"beautiful"
127.0.0.1:6379> hset myhash site www.baidu.com
(integer) 1
127.0.0.1:6379> hget myhash site
"www.baidu.com"
127.0.0.1:6379> keys *
1) "study"
2) "myhash"
3) "count"
127.0.0.1:6379>
  • hkeys命令
127.0.0.1:6379> keys *
1) "study"
2) "myhash"
3) "count"
127.0.0.1:6379> hkeys myhash
1) "weather"
2) "site"
  • hexists和hdel命令
127.0.0.1:6379> hkeys myhash
1) "weather"
2) "site"
127.0.0.1:6379> hexists myhash site
(integer) 1
127.0.0.1:6379> hexists myhash tt
(integer) 0
127.0.0.1:6379> hdel myhash site
(integer) 1
127.0.0.1:6379> hexists myhash site
(integer) 0
127.0.0.1:6379> hkeys myhash
1) "weather"
127.0.0.1:6379>
  • hmset和hmget命令(批量)
127.0.0.1:6379> hmset hellohash k1 "nihao" k2 "happy" k3 "rich"
OK
127.0.0.1:6379> hmget hellohash k1 k2 k3
1) "nihao"
2) "happy"
3) "rich"
127.0.0.1:6379> hkeys hellohash
1) "k1"
2) "k2"
3) "k3"
127.0.0.1:6379>
  • hlen命令
127.0.0.1:6379> hkeys hellohash
1) "k1"
2) "k2"
3) "k3"
127.0.0.1:6379> hlen hellohash
(integer) 3
127.0.0.1:6379>

图片

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

参考文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值