zoukankan      html  css  js  c++  java
  • 星空雅梦

    简单易懂学编程: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最常用的操作基本小编都已经给大家示范了一遍。大家要记得自己多练习一下,大家加油!

  • 相关阅读:
    linux signal之初学篇
    Eclipse 每次打开workspace目录记录位置?
    [Clojure] A Room-Escape game, playing with telnet and pure-text commands
    孔雀翎----《Programming C# 》中国版 文章4版
    js一些编写的函数
    KVM,QEMU核心分析
    apche commons项目简介
    java基础—网络编程———建立聊天的形式
    学习算法
    css+html+js实现多级下拉和弹出菜单
  • 原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10947601.html
Copyright © 2011-2022 走看看