redis基本数据类型-redis系列教程
来源:互联网 发布:思念诗词 知乎 编辑:程序博客网 时间:2024/05/29 17:27
基础知识
单进程
redis程序采用的是单进程模型来处理客户端的请求,对读写等事件的响应是通过对epoll函数的包装来实现。
redis的实际处理速度完全依靠主进程的执行效率,假如同时有多个客户端并发访问,则服务器处理能力在一定情况下将会下降。假如要提升服务器的并发能力,那可以采用在单台服务器上部署多个redis进程的方式。
多数据库
- redis每个数据库是用从
0
开始递增的数字来命名的,初始化16
个(可以在配置文件中修改)数据库,默认使用0
号数据库,你也可以使用select [数字]
来切换数据库。 dbsize
查看当前数据库KEY的数量move key db
在多个数据库之间移动数据flushdb
清除当前数据库的全部数据- redis不支持自定义数据库名字
- redis不支持为每个数据库设置不同的访问密码(只能是统一的密码)
- 多个数据库之间并不完全的隔离,使用
flushall
可以清空全部的数据。 - redis的数据库更像是一个命名空间
基本数据类型
KEY(键)
- key是字符串类型,如果中间有空格或者转义字符要用引号引起来,当然不建议这么做,这在低版本上可能不被支持。
- 命名建议
对象类型:对象标识(ID):对象属性
,例如user:u100001:age
- 多个单词之间用
.
分隔,例如user:u100001:body.head
- 在可读的情况下key应该尽量有意义并且简短
VALUE(值)
String
可以存储String/Integer/Float类型的数据,甚至是二进制数据,一个字符串最大容量是512M
List
底层实现上不是数组而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别。当然也有弊端,比如元素定位比数组慢。
Set
无序不可重复列表,是通过HashTable来实现。
Hash
按照K/V方式来存储字符串,类似于java中的Map
ZSet
有序且不可重复,根据Score来排序。使用散列表和跳跃表来实现,所以读取中间部分数据也很快。
Geo
地理空间坐标的存储,很方便的计算两点之间的直线距离。
基本操作
键操作
keys pattern
获得符合规则的键名列表,pattern支持glob风格通配符格式?
匹配一个字符*
匹配任意字符[]
匹配中括号内的任一字符,可以用来表示一个范围\x
匹配字符x,用于转义符号
127.0.0.1:6379[1]> keys *127.0.0.1:6379[1]> keys t?[a-z]
exists key
判断指定键是否存在,如果存在返回1(非0即真)scan cursor [MATCH pattern] [COUNT count]
基于游标的迭代器,可以用来遍历键(分页浏览键)。127.0.0.1:6379[1]> scan 0 count 31) "5"2) 1) "myhash"2) "myzset"3) "a"127.0.0.1:6379[1]> scan 5 count 31) "7"2) 1) "myset"2) "key2"3) "myset2"4) "myset3"
删除
del key
删除指定键值- del命令虽不支持通配符,但可以结合linux管道和xargs命令来自定义删除。例如
redis-cli keys * | xargs redis-cli del
,如果键名称中有空格可能并不会被删除。
类型
type key
获得键值的数据类型- 数据都是以string类型存储,在做计算时会自动进行类型转换。
重命名
rename key newkey
修改指定键名称renamenx key newkey
如果新的键名不存在则改名,防止已存在键被覆盖。
生存&过期时间
expire key seconds
修改键的生存时间(单位秒)pexpireat key milliseconds-timestamp
修改键的生存时间(单位毫秒)expireat key timestamp
修改键的到期时间(时间戳),从1970年1月1日起的秒数pexpireat key milliseconds-timestamp
修改键的到期时间(时间戳),从1970年1月1日起的毫秒数ttl key
返回键剩余生存时间(单位秒)pttl key
返回键剩余生存时间(单位毫秒)randomkey
返回随机一个键
迁移
migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]
在两个redis实例之间迁移键MIGRATE 192.168.1.34 6379 "" 0 5000 KEYS key1 key2 key3
阅读全文
1 0
- redis基本数据类型-redis系列教程
- redis基本操作-redis系列教程
- redis教程(三):Redis数据类型及基本的使用
- redis-[1]-redis基本数据类型
- Redis学习系列——Redis基本教程
- redis基本数据类型分析
- Redis基本数据类型--string
- redis基本数据类型
- redis基本数据类型
- redis基本数据类型
- Redis基本数据类型
- Redis的基本数据类型
- Redis基本数据类型
- Redis学习系列---数据类型
- Redis系列二数据类型(redis数据类型)
- Redis教程分享系列
- 【Redis】Redis数据类型 String与基本使用
- Redis系列(2)--- Redis数据类型
- Kotlin学习笔记(1)- 环境配置
- Udacity课程-关于交易策略的机器学习(佐治亚理工CS7646)
- Django源码分析之执行入口
- socket编程(九)
- 【tensorflow入门之一】tensorflow快速安装
- redis基本数据类型-redis系列教程
- The user specified as a definer ('wxsc'@'127.0.0.1') does not exist
- Spring
- IQKeyboardManager解决键盘遮挡,非常方便
- 连接池Connection Pool 单例设计
- oracle 将查询结果创建表并插入
- Vim教程之终极篇
- Android杂谈(23)Service+BroadcastReceiver+数据库+HttpURLConnection实现断点续传(上)
- Spring中Bean及@Bean的理解