您的位置:首页 > 数据库 > Redis

【redis学习笔记-01-基础篇】-01-5种基本数据类型及基础操作

2019-06-01 18:26 561 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengyu6623/article/details/90732063

目录

字符串(string)

字典(hash)

列表(list)

集合(set)

有序集合(zset)

其他redis常用命令

字符串(string)

redis里的字符串不同于java或者c里的字符串,redis的字符串是可变的。redis称之为SDS(simple dynamic string)

常用操作命令

set [key] [value]

    放置单个key对应value值,例如要放置指定用户的id对应的用户名:      set  1001001  xiaoming

get [key]

    相应的取出某个key所对应的值的命令即为: get 1001001

mset [key] [value] [key…] [value…]

    批量放置多个key对应多个value值  mset 1001002 zhangsan 1001003 lisi

mget key [key…]

    批量获取多个kye对应的value mget 1001002 1001001

incr key

    若相应的value值是整数,此命令会递增value值,类似于++i操作。若key不存在,默认对应value值为0,所以此处结果为1

incrby key increment

    递增指定increment步长:例如原本source 为1 incrby source 2后 source变为3

decr key

    若相应的value值是整数,此命令会递减value值,类似于--i操作。若key不存在,默认对应value值为0,所以此处结果为-1

decrby key decrement

    递增指定decrement步长:例如原本source 为3  decrby source 2后 source变为1

incrbyfloat key increment

    与incrby功能一致,只不过increment是双精度浮点数 例如:incrbyfloat sourcefloat 1.2

strlen key

    获取指定key值对应value的字符串长度,例如 strlen 1001001 会得到对应value(xiaoming)的字符串长度8

setex key seconds value

    放置单个key对应value值,并设置过期时间,单位秒,该操作是原子操作。例如 setex mykey 10 hello

 

字典(hash)

redis里的字典功能类似于HashMap,例如可以把用户的信息存在一个hash字典里,key为这个用户id

hset key field value

    往key对应的字典中放置相应的field和其对应的value值,例如 hset xiaoming_properties name xiaoming

hmset key field value [field…] [value…]

    批量的往key对应的字段中放置多个field及其对应的value,hmset xiaoming_properties sex male age 12

hget key field

    获取key字典中对应的field的value值,例如 hget xiaoming_properties name

hmget key field [field…]

    批量获取key对应的字典中多个field对应的值 hmget xiaoming_properties name sex

hgetall key

    获取key对应字典中所有的feild及其对应的value值,例如 hgetall xiaoming_properties

hexists key field

    判断key字典中是否存在对应的field,存在则返回1,否则返回0。例如hexists xiaoming_properties name

hsetnx key field value

    先判断key字典中是否存在field,若不存在则放置相应的value值,否则不做动作。例如hsetnx xiaoming_properties name xiaoming2

hincrby key field increment

    功能与incrby一致,只不过这里先要先指定对应key的字典。例如 hincrby xiaoming_properties source 2

hdel key field [field…]

    删除key字典中指定的某些field,返回被删除字段的个数。例如 hdel xiaoming_properties age source

hkeys key

    返回key字典的所有字段列表,例如 hkeys xiaoming_properties

hvals key

    返回key字典的所有字段值,例如 hvals xiaoming_properties

hlen key

    返回key字典的字段总和,例如 hlen xiaoming_properties

 

列表(list)

redis里的list其实是个双向链表。

lpush key value [value…]

    往key列表中左push相关字段。例如lpush listkey v1 v2 v3

rpop key

    从key列表的右pop一个元素,返回pop出的元素。所以lpush 和 rpop配套使用为队列。lpush和lpop配套使用为栈。

rpush key value [value…]

    往key列表中右push相关字段。例如rpush listkey v1 v2 v3

lpop kye

     从key列表的左pop一个元素,返回pop出的元素。所以rpush 和 lpop配套使用为队列。rpush和rpop配套使用为栈。

 

集合(set)

redis中的set相当于java中的HashSet。内部存储是去重无序的。

sadd key value [value...]

    往key对应的set集合中放入多个元素。例如 sadd setkey m1 m2

smembers key

    获取key对应的set集合的所有元素。例如 smembers setkey

sismember key value

    判断key对应的set集合中是否存在vlaue元素。例如 sismember setkey m1。存在即返回1 不存在即返回0

scard key

    计算key对应的set集合的元素个数。例如 scard setkey

spop key [count]

    从key对应的set集合中弹出count个元素,count为可选,不填默认1。例如 spop setkey 将会从setkey对应的集合中弹出一个元素

 

 

有序集合(zset)

zset是redis中非常有特色的数据类型,一方面它有set去重的功能,另一方它可以给每一个元素设置一个score,以此来对元素排序。

zadd key score value

    往key对应的zset里增加一个元素value,并设置分数为score。默认按升序排序。例如 zadd scoreset 1.1 v1

zscore key value

    查看具体元素value对应的score分数值。例如 zscore scoreset v1

4000

zrange key start nums

    获取按升序排序从start位置开始的,总共nums个元素。zcore scoreset 2 3。注意位数从0开始,这里的2即为第三个元素开始取后面三个元素

zrevrange key start nums

    和zrange功能一样,只不过这里是获取降序start为开始,总共nums个元素。

zrangebyscore key min max

    获取指定从min 到 max分数区间的所有元素

 

 

其他redis常用命令

type key

    查看key对应的数据类型

keys *

    查看所有key

del key

    删除某个key

exists key

    查看某个key是否存在,存在则返回1,否则返回0

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: