ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis:(一)五大基本数据类型常用命令

2020-11-20 15:35:43  阅读:250  来源: 互联网

标签:set myhash name list myset Redis key 常用命令 数据类型


库命令

select 1    # 切换到1号数据库
dbsize      # 查看当前数据库的数据数量
keys *      # 查看当前数据库的所有key
flushdb     # 清空当前数据库
flushall    # 清空所有数据库

 

String(字符串)

set name liuyu        # 存入一个key为name,值为liuyu的k-v数据
get name              # 将返回这个key对应的value
exits name            # 判断当前key是否存在,存在返回1 否则返回0
move name 1           # 移动这个k-v到指定数据库
expire name 10        # 给k-v设置过期时间为10秒
ttl name              # 查看这个k-v的有效时间
type name              # 查看当前key的类型
append name "hh"     # 在key对应的值后边拼接字符串,如果key不存在,则相当于set
strlen name            # 查看这个key对应value的长度
set views 0            # 这里设置一个整数
incr views             # 自增1
decr views             # 自减1
incrby views 5         # 自增5
decrby views 5         # 自减5
getrange name 1 2      # 返回指定下标范围的值
getrange name 0 -1     # 返回整个值
setrange name 1 ab     # 将下标为1的值替换为ab
setex name1 10 "aaa"   # 如果name1不存在则创建,如果存在则覆盖,并设置10秒过期,    具有原子性。
setnx name2 bbb        # 如果不存在这个key则创建成功并返回1,否则返回0
mset k1 v1 k2 v2 k3 v3 # 批量设置多个k-v
mget k1 k2 k3          # 批量返回相应key对应的value
msetnx k1 v1 k4 v4     # 批量不存在时设置,具有原子性,如此时k1存在但k4不存在,依旧设置失败返回0
set user:1 {name:liuyu,age:10} # 设置一个对象
mset user:1:name liuyu user:1:age 10 # 效果同上
getset name ccc        # 先get再set,不存在时返回nil,但set依旧生效,存在则覆盖 

 

List(列表)

lpush list one   # 往list左侧插入值
lrange list 0 -1  # 返回list中所有值
rpush list four   # 往右侧插入值
lpop list       # 移除list左侧元素,并返回该元素
rpop list       # 移除list右侧元素,并返回该元素
lindex list 0    # 获取list中指定下标为0的值
llen list       # 返回list的长度
lrem list 1 value  # 移除list中指定个数的value值
ltrim list 1 2   # 截断list,保留指定下标的值
rpoplpush list hello # 从list右侧移除一个元素并返回,且将该元素插入list
exists list       # 判断list是否存在,存在返回1,不存在返回0
lset list 0 hello   # 修改列表指定位置的值,需要列表和该位置不为空,否则报错
linsert list v1 before v0  # 往list列表的v0前边插入v1
linsert list v1 after v2  # 往list列表的v2后边插入v1

 

Set(集合)

无序且不重复。

应用:共同关注,二度好友(六度分割理论)

sadd myset "hello"    # set集合中添加元素
smembers myset        # 查看指定set的所有值
sismember myset hello # 判断某一个值是不是存在set集合中(如果存在,返回1,否则返回0)
scard myset              # 获取set集合中的元素个数
srem myset "hello"      # 移除set集合中的指定元素
srandmember myset      # 随机抽选出一个元素
spop myset              # 随机删除一些set集合中的元素
smove myset myset2 "hello" # 将一个指定的值,移动到另一个set集合
sdiff key1 key2       # 求差集
sinter key1 key2      # 求交集(比如用于查找共同好友)
sunion key1 key2      # 求并集

 

Hash(哈希)

应用:更适合对象的存储,经常变动的信息

hset myhash field1 liuyu    # set一个具体的key-value
hget myhash field1            # 获取一个字段值
hmset myhash field1 hello field2 world # set多个key-value
hmget myhash field1 field2  # 获取多个字段值
hgetall myhash                 # 获取全部数据(包括key)
hdel myhash field1            # 删除hash指定的key,对应的value也就没有了
hlen myhash                 # 获取hash表的字段数量
hexists myhash field1         # 判断hash中指定字段是否存在
hkeys myhash                 # 只获得所有field
hvals myhash                 # 只获得所有value
hincrby myhash field3 1        # 指定增量
hsetnx myhash field4 hello  # 如果存在则不能设置

 

Zset(有序集合)

应用:数据排序,排行榜,带权重判断

zadd myset 1 one        # 添加一个值
zrange myset 0 -1        # 查看集合元素
zrangebyscore myset -inf +inf #从小到大排序(-inf为无限小,+inf为无限大)
zrevrange salary 0 -1   # 从大到小排序
zrem myset liuyu         # 移除有序集合中的指定元素
zcard myset                # 获取有序集合中的个数 
zcount myset 1 3        # 获取指定区间的元素个数

 

标签:set,myhash,name,list,myset,Redis,key,常用命令,数据类型
来源: https://www.cnblogs.com/liuyu666/p/14011112.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有