Redis的数据结构
字符串 String
字符串列表 list
字符串集合 set
有序字符串集合 sorted set
哈希 hash
常用命令
设置值
set [key] [value]
先获取再设置
getset
[key] [value]
获取值
get [key]
删除值
del [key]
增减
incr [key] 将制定key对应的value增加1 如果不存在,则创建并等于默认初始值,再加1
如果是不能转换成int类型的值,则会报错
decr [key] 的作用和 incr 命令相反
incrby [key] 5 原值上加5,指定增加多少
desrby [key] 5 也是一样,作用相反
拼接字符串
append [key] str 在原值后面增加附加字符串
数据结构之哈希
Hash 就是存储 String Key 和 String value 的Map结构
设置值
hset myhash username jack
haet
myhash age 18
设置多个值
hmset
myhash2 username rose age 18
获取
hget myhash username
hmget myhash username age
hgetall myhash
删除
hdel myhash2 username age 删除集合里的键值对
del myhash2 删除整个集合
增加数字
hincrby myhash age 5
判断是否存在
hexists myhash username
获取属性数量
hlen myhash
获取所有属性
hkeys myhash
获取所有值
hvals myhash
数据结构之list
存储list:
ArrayList使用数组方式
LinkedList使用双向链表方式
双向链表添加数据 删除数据
两端添加 左侧添加 lpush mylist a b c 右侧添加 rpush mylist2 a b c
查看列表 lrange mylist 0 5
两端弹出 lpop mylist
获取列表元素个数 llen mylist
数据结构之set
存储Set:
Set集合中不允许出现重复的元素
添加删除元素 sadd myset a b c
srem myset a b
获取集合的元素 smembers myset
集合的差集运算 sdiff myset1 myset2
集合的交集运算 sinter myset1 myset2
集合的并集运算 sunion myset1 myset2
Redis的持久化
两种持久化方式
RDB方式 默认支持,不需要配置 在指定的时间间隔内,将内存中的数据写进磁盘
AOF方式 以日志的方式,记录服务器的每一条操作 更高的数据安全性 文件要大一些 运行效率要低一点
无持久化
同时使用 PDB和AOF
Redis多数据库
客户端可以指定链接那个数据库 一个Redis实例最多连接16个数据库 0-15
选择1号数据库
select 1
将一个数据库里面的key移动到另一个数据库
move myset 1, 将当前库里的myset移动到 1 号数据库
Redis事物
multi exec discard
事物中的所有命令都会串行化顺序执行,命令执行失败,后面的命令还是会执行
multi 开启一个事物,后面的命令都会在事物里面
exec 提交事物
discad 相当于关系型数据库的rollback,提交之前废弃之前的命令