Redis基础总结

一、概念

Redis是用C语言开发的一个单线程、高性能键值对(key-value)非关系型数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s ,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型有Sring、hash、list、set和sortedset

二、命令操作

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

  1. 字符串类型 string
  2. 哈希类型 hash : map格式
  3. 列表类型 list : linkedlist格式。支持重复元素
  4. 集合类型 set : 不允许重复元素
  5. 有序集合类型 sortedset:不允许重复元素,且元素有顺序

1)String类型

1.存储String : set key value
127.0.0.1:6379> set name libai
OK

2.获取String : get key
127.0.0.1:6379> get name
"libai"

3.删除String : del key
127.0.0.1:6379> del name
(integer) 1


2)hash类型

  1. 存储: hset key field fieldValue
127.0.0.1:6379> hset human name libai
(integer) 1
127.0.0.1:6379> hset human password 111
(integer) 1
  1. 获取某个hash指定字段:hget key field
127.0.0.1:6379> hget human name
"libai"
127.0.0.1:6379> hget human password
"111"
  1. 获取hash中所有字段和值:hgetall key
127.0.0.1:6379> hgetall human
1) "name"
2) "libai"
3) "password"
4) "111"
  1. 删除hash中某个字段:hdel key field
127.0.0.1:6379> hdel human name
(integer) 1
127.0.0.1:6379> hgetall human
1) "password"
2) "111"

3)列表类型list

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

  1. 存储:
    1. lpush listname value:将元素加入列表头部
    2. rpush listname value:将元素加入列表尾部
# 创建list1列表然后添加3个元素	
127.0.0.1:6379> lpush list1 a b c
127.0.0.1:6379> lpush list1 d
127.0.0.1:6379> rpush list1 E
  1. 获取:
    1. lrange listname start end :范围获取
    2. 0 -1 :是获取所有元素
127.0.0.1:6379> lrange list1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
5) "E"
  1. 删除元素
    1. lpop listname: 删除列表最左边的元素,并将元素返回
    2. rpop listname: 删除列表最右边的元素,并将元素返回
127.0.0.1:6379> lpop list1
"d"
127.0.0.1:6379> rpop list1
"E"

4)集合类型 set

set不允许重复元素,是无序的

  1. 存储:sadd setname value
1. 存储:sadd setname value
127.0.0.1:6379> sadd set1 aa
(integer) 1
127.0.0.1:6379> sadd set1 bb
(integer) 1
127.0.0.1:6379> sadd set1 bb
(integer) 0 # 添加失败
  1. 获取:smembers setname:获取set集合中所有元素
2. 获取:smembers setname:获取set集合中所有元素
127.0.0.1:6379> smembers set1
1) "bb"
2) "aa"
  1. 删除:srem setname value:删除set集合中的某个元素
3. 删除:srem setname value:删除set集合中的某个元素	
127.0.0.1:6379> srem set1 aa
(integer) 1
127.0.0.1:6379> smembers set1
1) "bb"

5)有序集合类型 sortedset

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

  1. 存储:zadd setname score value
1. 存储:zadd setname score value   -- 依据score的大小对value进行排序

127.0.0.1:6379> zadd myss 10 libai
(integer) 1
127.0.0.1:6379> zadd myss 20 lisi
(integer) 1
127.0.0.1:6379> zadd myss 3 wuli
(integer) 1
  1. 获取:zrange key start end [withscores]
2. 获取:zrange key start end [withscores]
	0 -1:获取所有
127.0.0.1:6379> zrange myss 0 -1
1) "wuli"
2) "libai"
3) "lisi"
2.1 获取:同时把分数也获取出来
127.0.0.1:6379> zrange myss 0 -1 withscores
1) "wuli"
2) "3"
3) "libai"
4) "10"
5) "lisi"
6) "20"
  1. 删除:zrem setname value
3. 删除:zrem setname value
127.0.0.1:6379> zrem myss lisi
(integer) 1
127.0.0.1:6379> zrange myss 0 -1 withscores
1) "wuli"
2) "3"
3) "libai"
4) "10"

通用命令:

1. keys * : 查询所有的键
2. type key : 获取键对应的value的类型
3. del key:删除指定的key value

三、Redis的持久化

redis是一个内存数据库,当redis服务器重启,获取电脑重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中。

1)redis持久化机制

1. RDB:默认方式,不需要进行配置,默认就使用这种机制
			* 在一定的间隔时间中,检测key的变化情况,然后持久化数据
			1. 编辑redis.windwos.conf文件
				#   after 900 sec (15 min) if at least 1 key changed
				save 900 1
				#   after 300 sec (5 min) if at least 10 keys changed
				save 300 10
				#   after 60 sec if at least 10000 keys changed
				save 60 10000
				
			2. 重新启动redis服务器,并指定配置文件名称
				D:\Java\develop\redis\windows-64\redis-2.8.9>redis-server.exe redis.windows.conf	
			
		2. AOF:日志记录的方式,可以记录每一条命令的操作。可以每一次命令操作后,持久化数据
			1. 编辑redis.windwos.conf文件
				appendonly no(关闭aof) --> appendonly yes (开启aof)
				
				# appendfsync always : 每一次操作都进行持久化
				appendfsync everysec : 每隔一秒进行一次持久化
				# appendfsync no	 : 不进行持久化

四、redis服务器启动后闪退怎么办?

  1. 在解压的redis文件夹下新建一个start.bat(window启动一般都是xx.bat)
    1. 创建start.txt,添加内容:redis-server.exe redis.windows.conf
    2. 保存,修改后缀名为.bat
  2. 打开redis.windows.conf文件,限制内存
    1. 搜索:maxheap
    2. 另起一行,输入: maxheap 1024000000
      在这里插入图片描述
  3. 双击start.bat即可启动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值