目录
数据库安装及配置
参考:https://www.runoob.com/redis/redis-install.html \ https://www.cnblogs.com/ttlx/p/11611086.html
数据库操作
启动服务
连接数据之前需要启动数据库服务:redis-server
查看服务是否启动:ping ,返回结果为PONG说明服务已启动。
redis服务其他命令参考:https://www.runoob.com/redis/redis-server.html
连接redis数据库
本地连接redis :redis-cli
远程连接redis :redis-cli -h host(服务器地址) -p prot(端口号) -a password(密码)
退出:exit 或者 quit
数据库命令
切换数据库:select n ——n的值为0-15,redis数据库没有名称,默认有16个,用0-15来标识,连接服务后默认连接的是第一个(0号)库。
Redis键(key)的基本命令
删除已存在的键值对:del key
检查指定的key是否存在:exits key
设置数据的过期时间:
以秒计:expire key seconds , seconds为设置的秒数
时间戳:expireat key tinestamp , tinestamp为时间戳
毫秒计:pexpire key milliseconds ,milliseconds为设置的毫秒数
移除过期时间:persist key 对于已设置过期时间但未过期的数据
查看剩余过期时间:数据过期后返回值为-2
以秒计返回:ttl key
以毫秒返回:pttl key
列出所有的key:keys *
列出匹配的key:keys st*
移动数据到指定数据库中:move key db ,db为指定的数据库(0-15)
从当前数据库中随机返回一个key:randomkey
修改key名称:
rename key newkey 当修改的newkey已存在时,会覆盖已存在的数据
renamenx key newkey 仅在newkey不存在的时候将key修改为newkey
返回key的数据类型:type key
redis数据类型及操作
字符型string
设置数据:set key value
获取数据:get key
追加数据:append key value
删除数据:del key
修改key对应的value值,并返回原来旧的value值:getset key newvalue
获取字符串中的一段子字符:getrange key start end
同时获取多个指定key的value值:mget key1 key2 .......
设置数据并同时设置以秒计的过期时间:setex key seconds(时间) value 时间以秒计
设置数据并同时设置以毫秒计的过期时间:psetex key milliseconds value
仅在key不存在的时候设置key:seinx key value
覆写指定key的指定偏移量offset开始的字符串:setrange key offset value
获取数据长度:strlen key
同时设置多个key-value数据:mset key1 value1 key2 value2 ......
仅当key不存在时,同时设置多个key-value数据:msetnx key1 value1 key2 value2 ......
将key中存储的数字值增1:incr key
将key中存储的数字值减1:decr key
将key中存储的数字值增加指定值:incrby key increment
将key中存储的数字值减去指定值:decrby key increment
将key中存储的数字值增加指定浮点数值:incrbyfloat key increment
列表list
单值左添加:lpushx key value
单值右添加:rpushx key value
一个及以上数量值左添加:lpush key value [value......] 从头部添加数据
一个及以上数量值右添加:rpush key value [value......] 从尾部添加数据
在列表指定元素之前添加:linsert key before 指定参考元素 value
在列表指定元素之后添加:linsert key after 指定参考元素 value
通过索引设置列表元素得值:lset key index value
查看数据:lrange key strat stop
通过元素的索引查找元素:lindex key index
获取列表指定范围内的元素:lrange key strat stop
移出并获取列表中的元素:当列表没有元素会阻塞列表直到等待超时timeout或发现可弹出元素为止
取出第一元素:blpop key timeout
取出最后一个元素:brpop key timeout
取出最后一个元素添加到指定表中(左添加):brpoplpush 移出表 移入表 timeout
保留指定范围的列表元素并返回保留元素:ltrim key strat stop
移除并获取列表中的最后一个元素:rpop key
移除并获取列表中的第一个元素:lpop key
取出最后一个元素添加到指定表中(左添加):rpoplpush 移出表 移入表
移除指定数量的value值的表元素:lrem key count value
获取长度:llen key
哈希类型hash
添加数据:hset key field value
同时添加多个数据:hmset key field1 value1 [field2 value2 .......]
仅当字段不在哈希表中的时候设置字段和值:hsetnx key field value
查看哈希表中指定字段是否存在:hexists key field
获取哈希表中的指定字段值:hget key field
获取多个给定字段的值:hmget key field1 [field2 .....]
获取哈希表中的所有字段:hkeys key
获取哈希表中的所有value值:hvals key
获取哈希表中字段的数量:hlen key
获取哈希表中指定key的所有字段和值:hgetall key
对哈希表中key的指定字段数字添加整数增量:hincrby key field 整数值
对哈希表中key的指定字段数字添加浮点数增量:hincrbyfloat key field 整数值
删除一个或多个哈希字段:hdel key field1 [field2 .....]
集合set
添加一个及多个数据:sadd key member1 [member2]
获取集合的元素数量:scard key
返回集合中所有的成员:smembers key
集合运算:
差集:sdiff key1 key2 ...
交集:sinter key1 key2 ....
并集:sunion key1 key2 ...
将差集数据重新存储:sdiffstore newkey key1 key2 ...
将交集数据重新存储:sinterstore newkey key1 key2 ...
将并集数据重新存储:sunionstore newkey key1 key2 ...
判断member是否存在于key中:sismember key member
将集合中的元素移动到其他集合中:smove 移出集合 移入集合 指定member
随机移除集合中的一个或多个元素并返回移除的元素:spop key count ,count不指定时默认为1,表示随机移除一个元素。
返回集合中指定数量的随机元素:srandmember key count
移除一个或多个指定元素:srem key member1 [member2 ....]
有序集合sorted set
有序集合中每个成员都有一个double类型的分数和其对应,分数可以重复,成员顺序是根据分数进行排序的。
添加一个及以上数量的数据:zadd key score1 member1 [score2 member2 .....]
对指定成员分数添加增量:zincrby key 增加量 member
获取成员数量:zcard key
获取指定分数区间的成员数量:zcount key min max
获取指定区间的集合成员:zrange key strat stop
通过scores值查看元素值:zrangebyscore key min max
返回字典区间内的成员数量:zlexcount key min max
返回字典区间集合的成员:zrangebylex key min max
返回集合中成员的分数值:zscore key member
从大到小返回集合中成员:zrevrank key member
删除指定的一个或多个成员:zrem key member1 [member2 ....]
删除给定字典区间的所有成员:zremrangbylex key min max
删除给定排名区间的所有成员:zremrangebyrank key start stop
删除指定分数区间的所有成员:zremrangebyscore key min max