Redis你了解多少呢?
之前博主讲过一些关于MySQL的语句,大家都知道MySQL是一种关系型数据库,那么今天就数据库跟大家一起了解下另一个数据库Redis–非关系型数据库!
那我们先简单了解下MySQL与Redis的简单区别:
Mysql - 关系型数据库;数据存储在硬盘里
Redis - 非关系型数据库;数据存储在内存里;存取数据效率高
Redis数据库有16个,分别是0-15,每个数据库用数字命名,而且每个数据库的连接密码都一样,redis只允许一个密码。数据库之间不能共享,并且基于单机才有。
redis之所以分这么多个数据库,也是为了区分业务,不同的业务存放在不同的库,但是一个redis,一般是给一个项目用,项目内的不同业务,单独用一个库,这样不会相互有数据交叉。现在很多微服务项目,一个项目里有多个微服务,redis统一由团队管理,每个服务连接自己的库就可以了。
所以Redis适合放一些频繁使用,比较热的数据,一般会应用在下面一些场景,排行榜、计数器、消息队列推送、好友关注、粉丝等。
Redis可以用来做持久存储,也可以做缓存,目前大多数公司的存储都是Mysql +Redis,Mysql作为主存储,Redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。
以上就是Redis数据库的一些介绍了,接下来会了解一些redis的类型和命令以及博主遇到的小问题!
Redis五种类型:字符串(string)、哈希(hash)、列表(list)、集合(sets)、有序集合(sorted sets)
字符串内容
增加一个key和值:set key value
删除key及其内容:del key
修改key内容:set key newvalue
获得或者查看key的值:get key
批量增加:mset key1 value1 key2 value2
哈希内容
哈希数据结构:key {field1: value, field2:vaule…,fieldN:value}
增加key、field和值:hset key field_1 value1
批量增加:hmset key field_1 value1 filed_2 value2
删除key中的field:hdel key filed
修改key中field的值:hset key field newValue
查看或获得field值:hget key field
查看或获得key对应的field-value的对应值:hvals filed
计算field个数:hlen key
获取所有field:hkeys
列表内容
右插列表内容:rpush key value [value …]
左插列表内容:lpush key value [value …]
linsert key BEFORE|AFTER pivot value
lrange key start stop
lindex key index
llen key
左弹出key内容:lpop key
右弹出key内容:rpop key
修改下标index的元素值:lset key index value
集合(不允许相同的元素)
– 集合内元素操作
增加集合元素:sadd key element [element …]
删除集合元素:srem key element [element …]
计算元素个数:scard key
判断元素是否在集合中:sismember key element
spop key
获取所有元素:smembers key
– 集合间元素操作
交集:sinter key [key …]
并集:sunion key [key …]
差集:sdiff key [key …]
– 将结果保存
sinterstore destination key [key …]
suionstore destination key [key …]
sdiffstore destination key [key …]
其他暂时涉及到的命令
type --查看键的类型
select --选择库
ttl
-1 键没设置过期时间/永久有效
-2 键不存在
>0 键剩余的过期时间
以下是当时使用Redis时碰到的问题:
问题描述
刚开始还是好的,不知怎么突然抽风了,redis输入命令第二个set命令时,报错了,报错如下:
(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
博主在网上百度找到如下解决方法,并使用第二种方法成功解决问题!
解决办法
有两种修改方法:
1)是通过redis命令行修改
命令行修改方式示例:
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
2)是直接修改redis.conf配置文件
修改redis.conf文件:vi打开redis-server配置的redis.conf文件,然后使用快捷匹配模式:/stop-writes-on-bgsave-error定位到stop-writes-on-bgsave-error字符串所在位置,接着把后面的yes设置为no即可。
所以,遇事不决问百度还是有用的!
以上就是前天学习和遇到的一些内容与问题,希望大家喜欢!