zoukankan      html  css  js  c++  java
  • Redis数据类型

    Redis数据类型

    哪里去获得redis常见数据类型操作命令?http://redisdoc.com/

    1、String(字符串)


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

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

    string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

    2、Hash(哈希)

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

    类似Java里面的Map<String,Object>

    3、List(列表)

    Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
    它的底层实际是个链表

    4、Set(集合)

    Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,

    5、zset(sorted set:有序集合)

    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
    不同的是每个元素都会关联一个double类型的分数。
    redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

    Redis 键(key)

    1、开启redis,默认端口为6379

    ps -ef|gerp redis ##查看redis是否已经开启与redis启动端口
    redis-server redis-conf ##使用哪个配置文件启动redis
    redis-cli -h 127.0.0.1 -p 6379 #启动redis
    ping ##返回一个pong,表示已经连接上redis

    2、key *  展示所有key

    127.0.0.1:6379> keys *
    1) "mylist"
    2) "test"
    3) "auditState"
    4) "list"
    5) "l"

    3、 exists key的名字,判断某个key是否存在,存在返回1,不存在返回(Integer)0

    127.0.0.1:6379> exists key list
    (integer) 1

    4、 move key db   --->当前库就没有了,被移除了

    127.0.0.1:6379> move  list 1
    (integer) 1
    127.0.0.1:6379> get list
    (nil)
    127.0.0.1:6379> select 1
    OK
    127.0.0.1:6379[1]> keys *
    1) "list"
    127.0.0.1:6379[1]> select 0
    OK
    127.0.0.1:6379> 

    5、为给定的key设置过期时间 --->expire key time 

    127.0.0.1:6379> expire mylist 15
    (integer) 1
    127.0.0.1:6379> ttl mylist
    (integer) 5
    127.0.0.1:6379> 

    6、 ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

    127.0.0.1:6379> ttl mylist
    (integer) 5
    127.0.0.1:6379> ttl mylist
    (integer) -2
    127.0.0.1:6379> ttl l
    (integer) -1
    127.0.0.1:6379> 

    7、 type key 查看你的key是什么类型

    127.0.0.1:6379> type list
    list
    127.0.0.1:6379> type test
    string

    Redis字符串(String)(单值单value)

    1、 set/get/del/append/strlen

    127.0.0.1:6379> set myredis myredis
    OK
    127.0.0.1:6379> get myredis
    "myredis"
    127.0.0.1:6379> del myredis
    (integer) 1
    127.0.0.1:6379> set myredis
    "111"
    127.0.0.1:6379> append myredis 2
    (integer) 4
    127.0.0.1:6379> get myredis
    "1112"
    127.0.0.1:6379> strlen myredis
    (integer) 4

    2、Incr/decr/incrby/decrby,一定要是数字才能进行加减

    127.0.0.1:6379> set mykey 1
    OK
    127.0.0.1:6379> incr mykey
    (integer) 2
    127.0.0.1:6379> decr mykey
    (integer) 1
    127.0.0.1:6379> incrby mykey 10
    (integer) 11
    127.0.0.1:6379> decrby mykey 10
    (integer) 1

    3、 getrange/setrange

    GETRANGE key start end

    返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。

    负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。

    GETRANGE 通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。

    127.0.0.1:6379> getrange mystr 0 -1
    "12345"
    127.0.0.1:6379> setrange mystr 0 2
    (integer) 5
    127.0.0.1:6379> get mystr
    "22345"

     4、setex(set with expire)键秒值/setnx(set if not exist)将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。

    setex:设置待过期时间的key,动态设置。
    setex 键 秒值 真实值

    setnx:只有在 key 不存在时设置 key 的值。

    127.0.0.1:6379> setex mykey 15 v
    OK
    127.0.0.1:6379> ttl mykey
    (integer) 12
    127.0.0.1:6379> get job
    "111"
    127.0.0.1:6379> setnx myredis 111
    (integer) 0

     5、mset/mget/msetnx

    mset:同时设置一个或多个 key-value 对。 

    mget:获取所有(一个或多个)给定 key 的值。

    msetnx:同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

    27.0.0.1:6379> mset name huang sex nan age 12
    OK
    127.0.0.1:6379> mget name sex age
    1) "huang"
    2) "nan"
    3) "12"

      6、getset(先get再set)

    127.0.0.1:6379> get myredis
    "123"
    127.0.0.1:6379> get myredis
    "123"
    127.0.0.1:6379> getset myredis 456
    "123"
    127.0.0.1:6379> get myredis
    "456"

    Redis列表(List)(单值多value)

    1、 lpush(栈结构)/rpush(队列结构)/lrange

    127.0.0.1:6379> lpush ll 1 2 3 4 5
    (integer) 5
    127.0.0.1:6379> lrange ll 0 -1
    1) "5"
    2) "4"
    3) "3"
    4) "2"
    5) "1"
    127.0.0.1:6379> rpush lr 1 2 3 4 5
    (integer) 5
    127.0.0.1:6379> lrange lr 0 -1
    1) "1"
    2) "2"
    3) "3"
    4) "4"
    5) "5"

    2、lpop 移除并返回列表 key 的头元素(移除掉的)。

    127.0.0.1:6379> lrange ll 0 -1
    1) "3"
    2) "2"
    3) "1"
    127.0.0.1:6379> lpop ll
    "3"
    127.0.0.1:6379> lrange ll 0 -1
    1) "2"
    2) "1"

    rpop:移除并返回列表 key 的尾元素(移除掉的)。

    127.0.0.1:6379> rpop ll
    "1"
    127.0.0.1:6379> lrange ll 0 -1
    1) "2"
    127.0.0.1:6379> 

    3、 lindex,按照索引下标获得元素(从上到下)

     lindex key index

    127.0.0.1:6379> lrange lr 0 -1
    1) "1"
    2) "2"
    3) "3"
    4) "4"
    127.0.0.1:6379> lindex lr 0
    "1"
    127.0.0.1:6379> lrange ll 0 -1
    1) "4"
    2) "3"
    3) "2"
    4) "1"
    127.0.0.1:6379> lindex ll 0
    "4"

    4、llen

    127.0.0.1:6379> llen ll
    (integer) 4
    127.0.0.1:6379> lrange ll 0 -1
    1) "4"
    2) "3"
    3) "2"
    4) "1"

    5、 lrem key 删N个value

     * 从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
     *  LREM list3 0 值,表示删除全部给定的值。零个就是全部值

  • 相关阅读:
    数字三角形W(加强版) codevs 2189
    数字三角形W(加强版) codevs 2189
    线段树模板
    树状数组模板 洛谷3374
    洛谷 2327 [SCOI2005]扫雷
    洛谷 2327 [SCOI2005]扫雷
    洛谷1144 最短路计数
    洛谷1144 最短路计数
    洛谷1346 电车
    洛谷1346 电车
  • 原文地址:https://www.cnblogs.com/huanghuanghui/p/9326402.html
Copyright © 2011-2022 走看看