星空雅梦

简单易懂学编程:Redis的五种数据类型和操作,以及一些其他操作

大叶科技

02-2502:27
痛饮一杯Python感受不一样的人生

我们已经学了很多的东西,今天我们来研究一下Redis是什么?它能做什么,以及它的五种类型是什么样的,以及它们的具体的使用场景。开发工具:IDLE (Python 3.7 64-bit或者32-bit) , pycharm(professional的版本), Ubuntu,xshell6(注:不需要3.7版本的也行,只需要Python3的版本都可以)1.什么是Redis

Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

优势:Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。

适用的环境:

由于Redis在交换数据的优势,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大使得系统直接读取磁盘来获得数据的I/O慢的情况得到改善,更重要的是极大的提升访问的速度。这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

进入Redis

未安装Redis的,可以在虚拟机中sudo apt-get update或者sudo apt-get install redis-server进行安装。

Redis的五种数据类型:字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(sorted sets)。键(key)有5中数据类型:string、list、set、zset(sorted set)、hash。值(value) :都是字符串类型的。

新建一个string对象

注意:键(key)是唯一的,不能设置一个相同的键(key) 不然现在设置的键(key)就会覆盖之前的那么键(key)。

查看过期时间(-1 表示永久 ; -2 表示 不存在)

查看过期时间

为什么会有时间限制呢?行为的Redis是内存级的数据库,在内存中运行速度快,缺点就是容量小。一般操作Redis的时候我们不会直接使得Redis直接存在,我们会设置一个过期时间使得不让键一直占用内存容量。

给已经存在 key,设置过期时间,即使再使用get name它也只会返回一个空(nil)。

给已存在的key设置过期时间

设置 键(key)的同时,设置过期时间。

设置键的同时设置过期时间

注意:尽量不要写中文,因为中文会导致乱码,或者显示的时候以二进制显示。

追加内容

给已有的value,再添加新的值。append key value,redis 里面所有的 value,都是字符串类型的。

获取多个

键(key)的操作。

key的操作

del key:删除一个键(key)。

exists key:查看key是否存在 ,存在返回 1, 不存在返回 0。

type key:查看键(key)的类型。

加减法

2.list

lpush:左添加(栈)。rpush:右添加 (队列)。

左右添加
查看长度和索引位置的值
左删除和右删除

我们查看lrange my_list 0 -1的时候,输出的顺序就是 d c b a,用rpop my_list 是删除的右边第一个即是:a.

我们查看lrange my_rlist 0 -1的时候,输出的顺序就是 a b c d,用rpop my_list 是删除的左边第一个即是:a.

用右rpush新建
指定删除方法一

lrem test_list 2 a : count > 0 从左往右 删除数量为count的value。从上往下删除。

指定删除二

lrem test_list 0 a : count = 0 删除所有的 value。当等于0 的时候将删除表内所有的指定值。

指定删除三

lrem test_list -1 b : count < 0 从右往左 删除数量为count的value。当小于0的时候从下往上删除。3.hash(类似于字典)

user { name:jianeng} user相当于键(key),{ name:jianeng}相当于值(value)。

定义一个has再获取

hset user name dayekeji :定义一个hash。hget user name : 获取值。

删除的方法

设置多个:user{name:dayekeji , age:25, sex:male }。

获取的方法

4.集合(set):sadd key value [value] 唯一性,无序性。

定义和获取

删除srem 指定删除:srem key member。spop随机删除 :spop key。随机选择一个移除。

删除的方法
移动到另外一个set2中

移动一个集合的值到另一个集合,smove my_set my_set2 z,将my_set中的z移动到my_set2中去。

交集
将交集放到一个新表中

并集

并集
并集合并到新表中

差集

差集
获取集合个数和随机返回一个

scard my_set :获取集合个数。

srandmember my_set : 随机返回一个。

5.zset(有序集合)

有序集合的实现方式
删除方法

zadd my_zset 1 'one' : 可以添加删去的值。

正序和反序
有序集合基本操作
删除指定区间内的元素
删除给定范围的元素操作

都只能在正向索引范围内进行,反向索引不可以。dedis:定阅(subscribe)和发布(pubulish)。

subscribe订阅
publish发布
接收

接收到一个message是由dayekeji发出的,内容是hello world。进入redis中以后,想要退出输入quit就可以退出了。

好了今天就和大家分享到这吧!今天 的内容偏向于操作,都不是很难,redis最常用的操作基本小编都已经给大家示范了一遍。大家要记得自己多练习一下,大家加油!

原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10947601.html