redis 数据操作

 

 字符串string
 hash(哈希)
set集合
list列表
zset有序集合

Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。

Redis全称为:Remote Dictionary Server,该软件使用C语言编写,Redis是一个key-value存储系统,

它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。

 字符串string

string操作

创建:

set name xxx          set age 18

查看:

get name # "xxx"   
get age # "18"

设置过期时间:

expire name 20(秒)

 查看时间:(没设置时间则返回-1,永久;不存在的则返回-2)

ttl name    

 创建并同时设置时间:

setex name 20 xxx   或       set name xxx ex 20

字符串追加:

append name 666   # xxx666

多字符串创建:

mset name xxx age 18 sex nan (不能用中文) key value key value .......

多字符串查看:

mget name age sex key key ....

查看所有的键值:

keys *

删除:(适用于所有的类型)

del key

检查是否存在:(1或0,布尔值,True或Flase)

exists name # 1

查看类型:

type name

运算:

incr num (自加1)
decr num(自减1)


incrby num 10 (自加10)
decrby num 10 (自减10)

 hash(哈希)

哈希,形如:key : (field : value)

创建:(可以理解为users用户,name为xxx)

hset users name xxx

查看:

hget users name # "xxx"

删除:

hdel users name

多创建:

hmset users name xxx age 18 sex nan(不能有中文)

多查看:

hmget users name age sex ...

查看全部键值对:

hgetall users
# 输出:
# 1) "name"
# 2) "xxx"
# 3) "age"
# 4) "18"
# 5) "sex"
# 6) "nan"

查看全部键:

hkeys users
# 输出:
# 1) "name"
# 2) "age"
# 3) "sex"

查看全部值:

hvals users
# 输出:
# 1) "xxx"
# 2) "18"
# 3) "nan"

查看长度:

hlen users # 3

set集合

创建:(集合的特点是:有序,无重复)

sadd set 1 2 3 4 5 6

查看:

smembers set

删除元素:

srem set 3
# 还剩 1 2 4 5 6 

移动:

sadd set2 3 4 5 6 7 8
smove set set2 1
# set   (2 4 5 6)
# set2 (1 3 4 5 6 7 8)

是否存在于集合:

sismember set 5
# 返回1 于 0  

交集:

sinter set set2
# 4 5 6

并集:

sunion set set2
# 1 2 3 4 5 6 7 8

差集:

sdiff set2 set
# 1 2 3 7 8

list列表

首先,需要先了解栈和队列的概念:

栈  先进后出:类比弹夹上的子弹,最后上进弹夹的子弹第一个使用,砌墙的板砖,后来居上

队列  先进先出:排队打饭,先到先得

创建列表:

左添加:(栈的形式添加)

lpush list 1 2 3 4 5 
# 输出:
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

右添加:(队列的形式添加)

rpush list 1 2 3 4 5
# 输出:
1) "1"
2)  "2"
3)  "3"
4)  "4"
5)  "5"

查看列表:

lrange list 0 -1   # 索引方式查看  0(第一位) -1 (最后一位)

查看长度:

llen list   # 返回数字

查看指定元素:(索引)

lindex list 3 # 从第零位开始  此处查看的是第4个元素

删除元素:

lpop list  # 从左边开始删除
rpop list  # 从右边开始删除

删除指定个数的元素:

lrem list 3(个数) 5(元素)
# 表示从上往下删除3个‘5’这个元素
# 如果是-3 则表示从下往上删除3个‘5’这个元素

zset有序集合

创建:(有序集合存在一个权重的概念)

zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g

# 输出:
# 1) "a"
# 2) "b"
# 3) "c"
# 4) "d"
# 5) "e"
# 6) "f"
# 7) "g"

# 左边权重,右边元素

查看:

zrange zset 0 -1   # 索引值,第一个和最后一个

倒序查看:

zrevrange zet 0 -1
# 输出:
# 1) "g"
# 2) "f"
# 3) "e"
# 4) "d"
# 5) "c"
# 6) "b"
# 7) "a"

删除:

zrem zset g(元素)

元素值查看查看对应索引值:

zrank zset a    # 0(索引值)

倒叙查看元素值相对对索引值;

zrevrank zset a    # 6   ('g'之前已被删除)

查看个数:

zcard zset   # 6

查看权重:

zscore zset a # 1(权重)
zscore zset f  # 6(权重)

返回有序集合中score(权重)在给定区间的元素:

zrangebyscore zset 3 5 withscores  # 查看权重在3 和5之间的元素(闭区间)
# 输出:
1) "c"
2) "3"
3) "d"
4) "4"
5) "e"
6) "5"

返回有序集合中score(权重)在给定区间的数量:

zcount zset 3 5 # 权重在3和5之间的元素个数
# 输出: 3

删除有序集合中索引值在给定的区间的元素:

zremrangebyrank zset 3 5  # 删除索引值3到5之间的元素(闭区间)
# 返回数字3   表示d e f 已经被删除了
# 还剩a b c

删除有序集合中权重在给定区间的元素:

zremrangebyscore zset 1 3  # 删除权重在1到3的(闭区间)
# 返回数字3  表示a b c 已经被删除了
# 现有序集合zset为空
原文地址:https://www.cnblogs.com/pywjh/p/14785917.html