JAVA数据库

Redis数据库的简单讲解

2018-05-05  本文已影响1人  WebGiser

1、Redis的数据结构
字符串(String)
字符串列表(list)
有序字符串列表(sorted list)
哈希(hash)
字符串集合(set)

2、命令
String命令
赋值命令: set key value
取值命令: get key
先取值再赋值; getset key value
删除值:del key
递增1(若key不存在,默认值为0,操作后值为1):incr key
递减1(若key不存在,默认值为0,操作后值为-1):decr key
递增(若key不存在,默认值为0,操作后值为5):incrby key 5
递减(若key不存在,默认值为0,操作后值为-5):decrby key 5
追加:append key 123

Hash命令
单个赋值:hset hash值 键值对。(hset myhash username abc , hset myhash age 18)
取单个值:hget hash值 key值。(hget myhash username)
取所有值:hgetall myhash
批量赋值:hmset hash值 键值对 键值对 。。。(hmset myhash2 username xyz age 20 address beijing)
批量取值:hmget hash值 键值 键值 。。。(hmget myhash2 username age)
递增:hincrby hash值 键值 5。(hincrby myhash age 5)
判断属性是否存在:hexists hash值 键值。(hexists myhash username)
获得属性的个数:hlen hash值。(hlen myhash)
获得所有的key集合:hkeys hash值。(hkeys myhash)
获得所有的value集合:hvals hash值。(hvals myhash)


image.png

List命令
左侧插入:lpush list名 值1 值2.。。。(lpush mylist a b c)
右侧插入:rpush list名 值1 值2.。。。(rpush mylist2 1 2 3)
查看元素(-1表示最后一个元素):lrange list名 start下标 end下标。(lrange mylist 0 2)
弹出左侧第一个元素:lpop list名。(lpop mylist)
弹出右侧第一个元素:rpop list名。(rpop mylist2)
获取元素个数:llen list名。(llen mylist)
从左侧删除count个值为value的元素(count=0时表示所有):lrem list名 count值 value值。(lrem mylist 2 3)
从右侧删除count个值为value的元素(count=0时表示所有):lrem list名 count值 value值。(lrem mylist 2 3)
修改某个下标值:lset list值 下标值 value值。(lset mylist 2 abc)
before插入某个元素:linsert list值 before 元素 新元素。(linsert mylist before b mmm)
after插入某个元素:linsert list值 after 元素 新元素。(linsert mylist after b mmm)
将一个list中的元素弹出并添加进另一个list:rpoplpush list1名 list2名。


image.png

Set命令
和List集合不同,Set中不允许出现重复元素。
添加元素:sadd set名 元素1 元素2.。。。(sadd myset a b c)
删除元素:srem set名 元素1 元素2.。。。(srem myset a b)
查看所有元素:smembers set名。(smembers myset)
判断元素是否存在:sismember set名 元素。(sismember myset a)
差集运算:sdiff set1 set2。
交集运算:sinter set1 set2。
并集运算:sunion set1 set2。
元素个数:scard set名。
返回任意一个元素:srandmember set名。
差集结果存储到新的set集合:sdiffstore 存储set set1 set2。
交集结果存储到新的set集合:sinterstore 存储set set1 set2。
并集结果存储到新的set集合:sunionstore 存储set set1 set2。


image.png

Sorted-Set命令
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
添加元素:zadd sort名 score1 元素1 score2 元素2.。。。(zadd mysort 70 tom 90 marry)
查询分数:zscore sort名 元素。(zscore mysort tom)
查询元素个数:zcard sort名。(zcard mysort)
查看元素(-1表示最后一个元素):zrange sort名 0 -1。(zrange mysort 0 -1)
查看元素和分数(-1表示最后一个元素,分数从小到大排序):zrange sort名 0 -1 withscores。(zrange mysort 0 -1 withscores)
查看元素和分数(-1表示最后一个元素,分数从大到小排序):zrevrange sort名 0 -1 withscores。(zrevrange mysort 0 -1 withscores)
按照排序的范围删除:zremrangebyrank sort名 排名1 排名2。(zremrangebyrank mysort 0 3)
按照分数的范围删除:zremrangebyscore sort名 分数1 分数2。(zremrangebyscore mysort 80 90)
增加分数:zincrby sort名 增加的分数 元素。(zincrby mysort 3 tom)

Keys命令
查看所有key: keys *
查看某些key: keys my?
删除某些key: del key名
查看key是否存在: exists key名
重命名:rename key名 新的key名
设置有效时间:expire key名 时间(expire name 1000)
查看剩余有效时间:ttl key名(ttl name)
获取类型: type 数据。

3、Redis实例包含16个数据库(0-15),默认连接的是0号数据库。
切换数据库:select 数字。(select 1)
数据移动:move key名 数据库下标(move myset 1)
使用事务:multi
命令1
命令n
提交事务:exec
回滚事务:discard

4、Redis持久化:RDB方式、AOF方式
RDB方式(默认使用):每隔一段时间将内存中的数据快照写入硬盘
AOF方式:将每一步操作记录到日志文件,数据发生修改即同步。
清空数据库:flushall
可以通过备份文件恢复数据库。

上一篇 下一篇

猜你喜欢

热点阅读