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

库命令

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        # 获取指定区间的元素个数

 

原文地址:https://www.cnblogs.com/liuyu666/p/14011112.html