zoukankan      html  css  js  c++  java
  • redis数据类型之string,list

      redis是干啥的就不多说了,我这里使用windows版的redis,redis是基于内存的,单进程单线程的非关系型数据库,不需要考虑什么线程安全;

      想要慢慢的深入redis就要耐下心来从最基本的命令开始慢慢敲一遍,害

    1. redis启动脚本

      下载完之后目录应该是下图这样的,我们启动一般是redis-server.exe redis.windows.conf启动的,这样可以根据不同配置文件启动的redis服务也是不同的

      便于后期的测试,我们写一个启动的脚本,就把上面那一行命令复制到一个txt文件,然后修改文件后缀为.bat,以后只需要双击这个bat文件就能启动redis服务端,然后点击redis-cli.exe就能连接上了;

    2.数据类型

      redis中有五种数据类型,分别是zset,set,list,hash和string,其实就是和java中那几种集合差不多

      下面我们分别看看这几种数据的用法;

      2.1 string

      字符串是最常用的数据类型了,操作的命令:

      set/get:存放/获取键值对

      getset: 首先获取key对应的值,并且覆盖原来的值;

      mset/mget: 可以一次性保存/获取多个键值对

      strlen: 获取键对应的值得长度

      append: 给键对应的值附加字符串,返回的是最终字符串的长度 

      getrange:字符串切割

      setex/psetex: 和set命令一样使用,只不过这里可以设置超时时间,时间过了就删除这个键值对,前者单位事秒,后者是毫秒

      setnx: 这个命令真的很重要!!!redis实现分布式锁就是基于这个命令的,当redis没有指定的key的时候,就存我们传进去的键值对;有指定key就啥也不干

     

      msetnx: 这是setnx强化版,可以同时设置多个键值对

      decr/incr: 自减一和自加一,就是i--和i++

      

      decrby/incrby: 上面的命令每次只能减一/加一,这个命令可以指定减数/加数

      2.2 list

      很多个人觉得这个list像java中的List<T>,其实我觉得像java中List<List<T>>这种类型才对,而且redis中的list可以从头部插入元素lpush,从尾部插入元素rpush

      特点:元素有序,可重复

     

      lpush:创建一个list,并每次从头部(或者说左边)向其中添加多个元素,元素可以重复

      lrange: 遍历list中所有元素

      rpush: 每次从尾部向list添加元素

      lpushx/rpushx: 向list添加元素之前,要保证这个list必须存在,用法和lpush/rpush一样;(这个x是exist的简写)

     

      lpop/rpop: 拿到头部/尾部元素,并删除list中对应的该元素

      llen: 获取指定list中元素的数量

     

      lset: 修改列表中指定位置的值

      lindex: 获取列表中指定位置的值

     

      lrem: 删除指定数量的重复元素

      ltrim:切割一部分的列表为我所用

     

      linsert: 从头到尾匹配到指定元素,在这个元素之前/之后 插入指定元素  ,下面的before是之前,用after是之后 

    --------------以上皆原创,给未来的自己留下一点学习的痕迹!--------
  • 相关阅读:
    java 异常 检查型和非检查型
    【jdbc】spring
    [事务] spring
    【事务】spring transaction 注解
    【线程同步】 Java 同步块(synchronized)详细说明
    【图片二进制接受】php
    C# 读取EXCEL文件的三种经典方法
    RS232 3线制与7线制的区别
    修改android 开机画面
    win7 vs2012+wdk8.0 搭建wdf驱动开发环境
  • 原文地址:https://www.cnblogs.com/wyq1995/p/14335677.html
Copyright © 2011-2022 走看看