前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >快速学习Redis-基本数据结构

快速学习Redis-基本数据结构

作者头像
cwl_java
发布2019-12-11 15:35:21
发布2019-12-11 15:35:21
24800
代码可运行
举报
文章被收录于专栏:cwl_Javacwl_Java
运行总次数:0
代码可运行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/103392794

1. redis的数据结构

redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构

2.value的数据结构
  • 字符串类型 string
  • 哈希类型 hash : map格式
  • 列表类型 list : linkedlist格式。支持重复元素
  • 集合类型 set : 不允许重复元素
  • 有序集合类型 sortedset:不允许重复元素,且元素有顺序
2.1 字符串类型 string
  1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK
  2. 获取: get key 127.0.0.1:6379> get username “zhangsan”
  3. 删除: del key 127.0.0.1:6379> del age (integer) 1
2.2 哈希类型 hash
  1. 存储: hset key field value 127.0.0.1:6379> hset myhash username lisi (integer) 1 127.0.0.1:6379> hset myhash password 123 (integer) 1
  2. 获取:
  • hget key field: 获取指定的field对应的值 127.0.0.1:6379> hget myhash username “lisi”
  • hgetall key:获取所有的field和value 127.0.0.1:6379> hgetall myhash
  1. “username”
  2. “lisi”
  3. “password”
  4. “123”
  5. 删除: hdel key field 127.0.0.1:6379> hdel myhash username (integer) 1
2.3 列表类型 list

可以添加一个元素到列表的头部(左边)或者尾部(右边)

  1. 添加:
  2. lpush key value: 将元素加入列表左表
  3. rpush key value:将元素加入列表右边 127.0.0.1:6379> lpush myList a (integer) 1 127.0.0.1:6379> lpush myList b (integer) 2 127.0.0.1:6379> rpush myList c (integer) 3
  4. 获取:
  • lrange key start end :范围获取 127.0.0.1:6379> lrange myList 0 -1
  1. “b”
  2. “a”
  3. “c”
  4. 删除:
  • lpop key: 删除列表最左边的元素,并将元素返回
  • rpop key: 删除列表最右边的元素,并将元素返回
2.4 集合类型 set

不允许重复元素

  1. 存储:sadd key value 127.0.0.1:6379> sadd myset a (integer) 1 127.0.0.1:6379> sadd myset a (integer) 0
  2. 获取:smembers key:获取set集合中所有元素 127.0.0.1:6379> smembers myset
  3. “a”
  4. 删除:srem key value:删除set集合中的某个元素 127.0.0.1:6379> srem myset a (integer) 1
2.5 有序集合类型 sortedset

不允许重复元素,且元素有顺序.每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

  1. 存储:zadd key score value 127.0.0.1:6379> zadd mysort 60 zhangsan (integer) 1 127.0.0.1:6379> zadd mysort 50 lisi (integer) 1 127.0.0.1:6379> zadd mysort 80 wangwu (integer) 1
  2. 获取:zrange key start end [withscores] 127.0.0.1:6379> zrange mysort 0 -1
  3. “lisi”
  4. “zhangsan”
  5. “wangwu”

127.0.0.1:6379> zrange mysort 0 -1 withscores

  1. “zhangsan”
  2. “60”
  3. “wangwu”
  4. “80”
  5. “lisi”
  6. “500”
  7. 删除:zrem key value 127.0.0.1:6379> zrem mysort lisi (integer) 1
3.通用命令
  1. keys * : 查询所有的键
  2. type key : 获取键对应的value的类型
  3. del key:删除指定的key value
4.持久化
  1. redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。
  2. redis持久化机制:
  3. RDB:默认方式,不需要进行配置,默认就使用这种机制
  • 在一定的间隔时间中,检测key的变化情况,然后持久化数据
  1. 编辑redis.windwos.conf文件
代码语言:javascript
代码运行次数:0
运行
复制
#   after 900 sec (15 min) if at least 1 key changed

save 900 1

代码语言:javascript
代码运行次数:0
运行
复制
#   after 300 sec (5 min) if at least 10 keys changed

save 300 10

代码语言:javascript
代码运行次数:0
运行
复制
#   after 60 sec if at least 10000 keys changed

save 60 10000

  1. 重新启动redis服务器,并指定配置文件名称
代码语言:javascript
代码运行次数:0
运行
复制
D:\JavaWeb2018\day23_redis\资料\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf	
  1. AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据
  2. 编辑redis.windwos.conf文件
代码语言:javascript
代码运行次数:0
运行
复制
appendonly no(关闭aof) --> appendonly yes (开启aof)
代码语言:javascript
代码运行次数:0
运行
复制
# appendfsync always : 每一次操作都进行持久化

appendfsync everysec : 每隔一秒进行一次持久化

代码语言:javascript
代码运行次数:0
运行
复制
# appendfsync no	 : 不进行持久化
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. redis的数据结构
  • 2.value的数据结构
  • 2.1 字符串类型 string
  • 2.2 哈希类型 hash
  • 2.3 列表类型 list
    • 2.4 集合类型 set
    • 2.5 有序集合类型 sortedset
    • 3.通用命令
    • 4.持久化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档