Redis笔记

Redis 教程 | 菜鸟教程

Redis 教程_redis教程

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

一、启动方式

1.启动服务器

有三种方式,进入redis的目录下,在命令提示符中输入指令:

(1).redis-server(注意:这样启动默认端口是 6379 );

(2).指定端口启动redis服务:redis-server --port 8888;

(3).配置文件启动:redis-server.exe  redis.windows.conf。

2.启动命令行

在命令提示符中输入

二、数据类型

1.String(字符串)

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

127.0.0.1:6379> set string Test
OK

结果

2.Hash(哈希)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

hmset key field1 value1 field2 value2...

127.0.0.1:6379> hmset Hash Name Amy Age 18 Sex girl
OK

结果

3.List(列表)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

lpush key value1 value2...

127.0.0.1:6379> lpush List First Second Third
(integer) 3

结果

4.Set(集合)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

127.0.0.1:6379> sadd Set 1 2 3 4 5 1 2 3
(integer) 5

结果

以上只传入了无重复的5个数字。

5.Sorted Set(有序集合)

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

zadd key score1 member1 score2 member2 //向有序集合添加一个或多个成员,或者更新已存在成员的分数

127.0.0.1:6379> zadd Sorted_Set 1 a 2 b 4 c 3 d
(integer) 4

结果

6.HyperLogLog

什么是基数?

比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

127.0.0.1:6379> pfadd HyperLogLog 1 2 3 4 5 7 8 9
(integer) 1
127.0.0.1:6379> pfcount HyperLogLog
(integer) 8

三、报错解决

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.

在redis中我们可以设置忽略这个错误,即快照失败依然可以进行执行命令。redis配置项中关于这个的配置项名称为stop-writes-on-bgsave-error,默认值为yes,我们需要改为no。
可以直接在client上执行命令:

config set stop-writes-on-bgsave-error no

 

这个修改是一次性的,只会修改redis当前运行的内存中的配置项的值,如果需要永久修改我们需要在redis配置文件redis.conf中修改stop-writes-on-bgsave-error的值。

 

posted @ 2023-10-26 10:41  时而有风  阅读(15)  评论(0编辑  收藏  举报