redis的基本操作

来源:互联网 发布:买了域名之后怎么用 编辑:程序博客网 时间:2024/05/22 03:48

通用操作

-- 查看所有key

keys *

-- 删除名为my1,my2的key

del my1 my2

-- 判断名为my1的key是否存在

exists my1

-- 把名为company的key改为newcompany

rename company newcompany

-- 设置newcompany的失效时间为1000秒

expire newcompany 1000

-- 查看newcompany剩余有效时间

ttl newcompany

-- 查看newcompany的数据类型

type newcompany


redis数据结构之字符串

-- 创建key为person value为jack的数据

set person jack

-- 得到key为person的值

get person

-- 给key为num的数值加1

incr num

-- 给key为num的数值减1

decr num

-- 给key为num的值加5

incrby num 5

-- 给key为num的值减3

decrby num 3

-- 在key为num的字符后面加5,如num为3,则append后为"35"

append num 5


redis数据结构之哈希

-- 创建key为myhash,username为jack的数据

hset myhash username jack

-- 批量创建key为myhash2中的数据

hmset myhash2 username rose age 21

-- 得到key为myhash中的username的值

hget myhash username

-- 得到myhash中username和age的值

hmget myhash username age

-- 得到myhash中所有的数据

hgetall myhash

-- 删除myhash2中username和age的数据

hdel myhash2 username age

-- 删除myhash2

del myhash2

-- 为key为myhash中age的值加5

hincrby myhash age 5

-- 判断myhash中是否存在username的数据(返回1或0)

hexists myhash username

-- 返回myhash中的数据个数

hlen myhash

-- 返回myhash中所有的key

hkeys myhash

-- 返回myhash中所有的值

hvals myhash


redis数据结构之list

-- 把abc依次从头部插入mylist中(最后放入的index为0)

lpush mylist a b c

-- 把123依次从尾部插入mylist2中(最先放入的index为0)

rpush mylist2 1 2 3

-- 查看mylist中的所有数据从下标0开始,到-1(最后元素的位置)结束

lrange mylist 0 -1

-- 从头部弹出(删除)元素

lpop mylist

-- 从尾部弹出元素

rpop mylist

-- 查看mylist元素个数

llen mylist

-- 只有当mylist存在时在mylist头部插入x,否则返回0

lpushx mylist x

-- 只有当mylist存在时在mylist尾部插入y,否则返回0

rpushx mylist y

-- 从头部开始删除共2个3

lrem mylist3 2 3

--  从尾部开始删除共2个1

lrem mylist3 -2 1

-- 删除mylist3中所有2

lrem mylist3 0 2

-- 把mylist3中下标为3的元素值设为mm

lset mylist3 3 mm

-- 从头部开始在第一个b元素前插入11

linsert mylist4 before b 11

-- 从头部开始在第一个b元素后插入22

insert mylist4 after b 22

-- 删除mylist5最后一个元素同时插入到mylist6头部

rpoplpush mylist5 mylist6


redis数据结构之set

-- 创建并在myset中加入abc

sadd myset a b c

-- 删除myset中的1,2

srem myset 1 2

-- 查看myset中的元素

smembers myset

-- 判断myset中是否存在a

sismember myset a

-- 返回mya1中有myb1中没有的元素(差集)

sdiff mya1 myb1

-- 返回mya2与myb2共有的元素(交集)

sinter mya2 myb2

-- 返回mya3与myb3共有的元素(并集)

sunion mya3 myb3

-- 返回myset元素个数

scard myset

-- 随机返回myset中的一个元素

srandmember myset

-- 把mya1与myb1的差集存入my1中

sdiffstore my1 mya1 myb1

-- 把mya2与myb2的交集存入my2中

sinterstore my2 mya2 myb2

-- 把mya3与myb3的并集存入my3中

sunionstore my3 mya3 myb3


redis数据结构之sorted-set(类似tree-set)

-- 在名为mysort的sorted-set中添加分数为70值为zs,分数为80值为ls,分数为90值为ww的数据

zadd mysort 70 zs 80 ls 90 ww

-- 不会重复插入,但会把zs的分数改为100

zadd mysort 100 zs

-- 查看mysort中zs的分数

zscore mysort zs

-- 查看mysort中元素个数

zcard mysort

-- 删除mysort中名为tom和ww的元素

zrem mysort tom ww

-- 查看mysort中所有元素

zrange mysort 0 -1

-- 查看mysort中所有元素及分数(按分数正序)

zrange mysort 0 -1 withscores

-- 查看mysort中所有元素及分数(按分数倒序)

zrevrange mysort 0 -1 withscores

-- 删除排名 (下标)为0-4的元素

zremrangebyrank mysort 0 4

-- 删除分数为80-100的元素

zremrangebyscore mysort 80 100

-- 查看分数在0-100的元素

zrangebyscore mysort 0 100

-- 查看分数在0-100的元素和分数

zrangebyscore mysort 0 100 withscores

-- 查看分数在0-100的前两个元素和分数

zrangebyscore mysort 0 100 withscores limit 0 2

-- 给ls加3分

zincrby mysort 3 ls

-- 查看分数在80-90间的元素个数

zcount mysort 80 90


redis事务操作

-- 选择1号数据库(0开始共16个)

 select 1

-- 把当前数据库中key为myset的数据移动到1号数据库中

move myset 1

-- 开启事务(begin transaction)

multi

-- 提交事务(commit)

exec

-- 回滚事务(rollback)

discard

例如:

multi

 incr num

exec

---------------------------------------

multi

set user jerry

discard