redis

一、简介

1.简介

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

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

  • 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • 支持数据的备份,即master-slave模式的数据备份。

2.优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

3.和其他key-value的不同

  • 有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。
  • 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。
  • 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。
  • 在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

 

二、安装

点击跳转redis安装

 

三、数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

String(字符串)#

string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。

string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个键最大能存储512MB。

127.0.0.1:6379> set name "chancey"
OK
127.0.0.1:6379> get name
"chancey"

Hash(哈希)

Redis hash 是一个键值对集合。

Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

127.0.0.1:6379> hmset mykey:chancey 18 man 
OK
127.0.0.1:6379> hgetall mykey:chancey
1) "18"
2) "man"

以上实例中 hash 数据类型存储了包含用户脚本信息的用户对象。

 List(列表)

列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。

复制代码
127.0.0.1:6379> lpush name chancey
(integer) 1
127.0.0.1:6379> lpush name suxin
(integer) 2
127.0.0.1:6379> lpush name zzx
(integer) 3
127.0.0.1:6379> lrange name 0 10
1) "zzx"
2) "suxin"
3) "chancey"
复制代码

Set(集合)

Redis的Set是string类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。表示计算量不变

添加一个string元素到,key对应的set集合中,成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误。

语法是 sadd key member 

复制代码
127.0.0.1:6379> sadd age 18
(integer) 1
127.0.0.1:6379> sadd age 19
(integer) 1
127.0.0.1:6379> sadd age 19
(integer) 0
127.0.0.1:6379> sadd age 20
(integer) 1
127.0.0.1:6379> smembers age
1) "18"
2) "19"
3) "20"
复制代码

不难发现,以上代码中,重复插入了19,但是查出来的值却只有一个,根据集合内元素的唯一性,第二次插入的元素将被忽略。

zset(sorted set:有序集合)

zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数可以重复。

语法 zadd key score member  

复制代码
127.0.0.1:6379> zadd sql 1 mysql
(integer) 1
127.0.0.1:6379> zadd sql 2 mongodb
(integer) 1
127.0.0.1:6379> zadd sql 3 orcale
(integer) 1
127.0.0.1:6379> zadd sql 3 orcale
(integer) 0
127.0.0.1:6379> zrange sql 0 10 withscores
1) "mysql"
2) "1"
3) "mongodb"
4) "2"
5) "orcale"
6) "3"
复制代码

 

四、数据备份与恢复

数据备份

用save命令

该命令将在 redis 安装目录中创建dump.rdb文件。

127.0.0.1:6379> save
OK
127.0.0.1:6379> quit
[root@SuXin ~]# cd redis-3.2.8
[root@SuXin ~]# cd /var/lib/redis/6379/
[root@SuXin 6379]# ls
dump.rdb

 Bgsave

创建 redis 备份文件也可以使用命令 bgsave,该命令在后台执行。

数据恢复

只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 config

[root@SuXin 6379]# redis-cli 
127.0.0.1:6379> config get dir
1) "dir"
2) "/var/lib/redis/6379"

 

六、远程连接

通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让redis 服务更安全。

查看配置的密码

127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""

可以看到,默认为空

现在设置密码

127.0.0.1:6379> config set requirepass 'qwe123'
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "qwe123"

连接用auth语法

127.0.0.1:6379> auth qwe123
OK

 

作者:ChanceySolo

出处:https://www.cnblogs.com/chancey/p/10282859.html

版权:本作品采用「ChanceySolo-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ChanceySolo  阅读(190)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示