Redis 数据库
redis REmote DIctionary Server(Redis) key-value存储系统,提供多语言API. 它通常被称为数据结构服务器,因为值value可以是 str,list,set,(sorted set)/zset,hash
redis 优势
性能极高 读110000次/s,写81000次/s
数据类型丰富
redis 的所有操作都是原子性的.同时还支持对几个操作合并后的原子性执行
丰富的特性 - redis 还支持publish/subscribe订阅,通知,key过期等等特性
redis 和其他数据库的区别?
在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加
的方式产生的,因为他们并不需要进行随机访问。
windows redis 安装 https://code.ziqiangxuetang.com/redis/redis-install.html
redis 服务启动 cd redis 目录下 redis-server redis.conf cd redis 目录下 redis-cli.exe -h 127.0.0.1 -p 6379
linux redis 安装 https://code.ziqiangxuetang.com/redis/redis-install.html
redis 数据类型 string(字符串) 可以包含任何数据,比如jpg,或者序列化的对象,一个键最大能存512MB
Hash(哈希) 是一个键值对集合,redis hash 是一个string类型的field和value的映射表,哈希特别适用于存储对象 hmset 键 (多值) hgetall 键
List(列表) 是简单的str列表,按照插入的顺序排序,可以插入元素到头/尾部 lpush 列表 值 lrange 列表 范围 (0 -1)
set(集合) redis的set是string类型的无序集合 集合是通过及哈希实现的,所以添加,删除,查找的复杂度都是O(1) sadd 命令 添加一个string元素到key对应的集合中,成功返回1,若已存在返回0,key对应的set不存在返回错误 sadd key member 添加值 smember key 查看集合中的值
zset(sorted set有序集合) 也是string类型元素的集合,且匀速不能重复
不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序
zset成员是唯一的,但是分数(score)却可以重复
zadd 命令 添加元素到集合,元素在集合中存在则更新对应的score
zadd key score member
zrangebyscore key 分数范围
远程端连接redis redis-cli -h host -p port -a password 例子 redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
key 命令 set del dump key 序列化,返回被序列化的值 exists key 是否存在 expire key 设置过期时间 keys pattern 查找所有符合给定模式的key move key db 将当前库的key移动到给定数据库db当中 randomkey 从数据库中随机返回一个key rename key newname 键的重命名 RENAMENX key newkey type key 返回key所存储的值的类型 flushdb 删除当前库里的keys flushall 删除所有
string 操作 set del getset 改原键的值,返回旧值 mset 键1 值1 键2 值2 mget 键1 键2 setex 键 timeout 值 getrange 键 start end ttl 键 查看过期时间信息 setrange 键 偏移 strlen 键 返回字符串长度,不存在键就返回0