1. 数据库分为:
  1. 1)传统的关系型数据库
    mysqloraclesql serversqlliedb2
    id name passwd cratetime stu
    特点:
    a 数据存在磁盘上
    b 使用sql语句来操作数据
    c 表与表之间有关系
  2.  
  3. 2)非关系型数据库 nosql
    由键值对组成:{'name':'xxx',''}
    mongodb 数据存在磁盘上的
    redis 数据都是存在内存里面
  4.  
  5. 1.连接redis
  1. import redis
    r = redis.Redis(host='123.24.3.45',port=6379,password='123',db=10)
  1. 增删改查:(操作String类型)
  1.  
  1. # r.set('nhy_info','age 18 sex nan sdfsdfsdfsd') #增加、修改数据
    # res = r.get('nhy_info_hhh') #获取数据,获取不到就返回None(返回bytes类型的数据)
    # r.delete('nhy_info') #指定一个key删除他,key不存在的话
    # print( res.decode() ) #编码,就变成了字符串
  2.  
  3. 其他的方法
    # print(r.keys('*info')) #获取到所有的key(*info,把info结尾的过滤)
    # print(r.exists('dashu_name')) #判断这个key是否存在
    # r.flushdb()#可以清空当前数据库里面所有的key
    # r.expire('session_crm',600)#指定key的失效时间
    # print(r.ttl('session_crm'))#用来这个key的失效时间
    # print(r.type('session_crm'))#看key的类型 
  1. 2.hash 哈希类的key
  2.  
  3. 哈希类型可以理解为一个字典嵌套字典
    select 10 redis的命令行里面select 8 就是切换数据库
  1. 增删改查:(操作hash类的key
    r.hset('session_crm','liuxinyu','sdfjksdklfjssdf') #
    r.hset('session_crm','zhouyifan_','ssdfsdfjksdklfjssdf') #
    r.hset('session_crm','laowang___','ssdfsdfjksdklfjssdf') #
    #修改也是hset
  1. # r.hdel('session_crm','liuxinyu') #删除指定的小key
    # r.delete('session_crm') #直接删除大key
    # print(r.hget('session_crm','zhouyifan_'))#获取指定小key里面的数据
    # res = r.hgetall('session_crm')#获取到hash类型里面所有的数据
  2.  
  3. eg:将bytes类型转化为字典
  1. 方法一:
    a = {}
    for k,v in res.items():
    a[k.decode()] = v.decode()
    print(a)
  2.  
  3. 方法二:
    for k,v in res.items():
    res[k.decode()] = res.pop(k).decode() #能节省内存,因为他把原来的key删掉了
    print(res)
  1. 注:res.pop(k)把原来的bytes类型的key删掉,返回value的值,这样res里就没有bytes类型的数据了
  2.  
  3. 3.加密模块
  1. import hashlib
  2.  
  3. s='123nhy456_++dfsdfsd'
    print(s.encode())
    m = hashlib.md5(s.encode()) #必须得传一个bytes类型的
    print(m.hexdigest()) #获取到加密后的结果
    def myMd5(s):
    s = str(s)
    m = hashlib.md5(s.encode()) #必须得传一个bytes类型的
    return m.hexdigest()
  4.  
  5. #md5不可逆
    #所有一样的字符串,md5之后的结果都是一样的
    #撞库(网上的解密是将所有常见数据的密文存放在一个库中,输入密文后通过与库中数据比对找到原文)
    #md5 123456 md5_after e10adc3949ba59abbe56e057f20f883e
  6.  
  7. # m = hashlib.sha384(s.encode())
    # print(m.hexdigest())
  1.  

操作redis的更多相关文章

  1. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  2. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  3. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

  4. Python—操作redis

    Python操作redis 连接方式:点击 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建, ...

  5. php操作redis简单例子

    <?php //在PHP里操作Redis //Redis就是php的一个功能类 //创建Redis对象 $redis = new Redis(); //链接redis服务器 $redis -&g ...

  6. python——操作Redis

    在使用django的websocket的时候,发现web请求和其他当前的django进程的内存是不共享的,猜测django的机制可能是每来一个web请求,就开启一个进程去与web进行交互,一次来达到利 ...

  7. 使用jedis操作redis

    一 连通性 1. 简单代码测试连通性 Jedis jedis = new Jedis(".......", 6379); String keys = "name" ...

  8. Java中使用Jedis操作Redis

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...

  9. Python操作Redis、Memcache、RabbitMQ、SQLAlchemy

    Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含 ...

  10. 通过PHP扩展phpredis操作redis

    我们使用phpredis,这个扩展能让你用PHP操作redis. 源码下载: phpize ./configure ); var_dump($result); echo $redis->get( ...

随机推荐

  1. [LeetCode] Swim in Rising Water 在上升的水中游泳

    On an N x N grid, each square grid[i][j] represents the elevation at that point (i,j). Now rain star ...

  2. viewport的故事(一)

    部分翻译 自原文 https://www.quirksmode.org/mobile/viewports.html   概念:设备像素和CSS像素   设备像素可以通过 screen.width/he ...

  3. 20 由属性查询学习到的ArcMap、javaScripts API相关操作

    因项目需要,想要在属性查询的时候连同相关的图片一并查出来,但是因为要查询的图层众多,且字段不固定,而且还要方便后期维护,因此一个个单独配置并不是最优的解决方法 为实现这个功能,我想到如下几种解决方法 ...

  4. File类中的一些属性 添加删除文件夹

    import java.io.File; import java.io.IOException; public class FileD { public static void main(String ...

  5. tomcat多实例

    //结合博主之前的安装tomcat的博文一起看,tomcat多实例就是在不同路径启动多个tomcat,然后在本机不同端口启动 [root@ycj ~]# cd /usr/local/src/ [roo ...

  6. Ubuntu-1604-LTS在虚拟机设置分辨率

    在虚拟机中安装ubuntu系统时,有时系统的界面并不同虚拟机展示的匹配,需要我们进行调整.不用那么多废话,直接看图:

  7. AppStore关键词覆盖法则标记

    https://www.jianshu.com/p/6b39b0dc6ba4 多批设置关键字

  8. 与PON相关的abbreviation

    AAL:Asynchronous transfer mode Adaptation Layer 异步传输适配层 ACS:Autoconfiguration Server 自动配置服务 ADSL:Asy ...

  9. spring 相关注解详情(一)

    1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层2.@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理3.@repos ...

  10. Libvmi实现分析

    LibVMI是一个专注于读写虚拟机内存的自省库,它能够监视虚拟机底层的运行细节并将其还原.LibVMI支持对Xen及KVM虚拟化平台上的运行虚拟机进行自省操作,针对KVM虚拟化平台,LibVMI对QE ...