redis基础操作概念等笔记
Redis常用配置
- daemonize -》是否是后台进程
- port -》对外端口
- logfile -》Redis 系统日志
- dir -》Redis 工作目录
Redis的链接
redis-cli -h 127.0.0.1 -p 6379
测试链接
使用ping返回PONG
查看配置
通过config get *命令可以查看
通过配置文件方式启动
找到redis所在的目录以下是mac系统的
cd /usr/local/etc
复制一份新的配置文件
cat redis.conf| grep -v "#" |grep -v "^$" >redis-6382.log
配置文件内容如下
daemonize yes #是否后台启动
port 6382 #启动端口修改为6382
dir /usr/local/var/db/redis/ #文件的位置,比如log
logfile "6382.log" #log文件的名字
启动
redis-server redis-6382.conf
查看进程
ps -ef |grep redis-server |grep 6382
通用命令
keys:遍历出所有的key,O(n)时间复杂度,生产环境不建议多用,可以在从节点用。
dbsize:计算key的总数,可以线上用,redis自带的计数器时间复杂度O(1)
exists key:检查key是否存在,时间复杂度O(1)
del key:删除key-value,时间复杂度O(1)
expire key seconds:keys在seconds秒后过期,时间复杂度O(1)
ttl key:查看key剩余的过期时间,-1表示存在但是没有过期时间,-2表示不存在。时间复杂度O(1)
type key:键的类型,时间复杂度O(1)
persist key:去掉key的过期时间,时间复杂度O(1)
数据类型
string,hash,list,set,sorted set
编码形式
raw,int,embstr,hashtable,ziplist,linkedlist,intest,skiplist
单线程
为什么?
纯内存
非阻塞IO(epoll)
避免线程切换和资源竞争
需要注意的:
1.一次只执行一条命令
2.拒绝长命令,比如keys *
字符串
结构和命令
结构
key hello value world
key counter value 1
key bit valuee 1010101010
key j value json结构
最大512M。
命令
get,set,del
incr key 自增1
decr 自减1
incrby key k,自增k
decrby key k 自减k
场景
- 缓存
- 计数器
- 分布式锁
计数器
incr userid:pageview
缓存
比如访问1.mp4,首先访问redis如果没有再访问mysql,mysql查到先反给redis,然后返回给客户。redis充当缓存的功能。
分布式id生成器
set setnx setxx
set key value #设置key O(1)
setnx key value #key不存在才设置 类似insert O(1)
setxx key value #key存在才设置 类似update O(1)
mset key1 key2 key3 O(n)
mget key1 key2 key3 #节省了网络时间,批量查询,如果量大可以拆分。O(n)
getset key value,设置新值返回老值 O(1)
append key value 增加 O(1)
strlen key 返回字符串的长度 O(1)
incybyfloat key 3.5 #增加key对应之3.5
getrange key start end #类似切片
setrange key start end
hash
key {field:value}
命令
hget key field O(1)
hset key field O(1)
hdel key field O(1)
hexists key field O(1)
hlen key field O(1)
hmget key field1 file2
hmset key field1 file2
记录网站每个用户个人网页的访问量
hincrby user:1:info pageiew count
其他命令
hgetall key O(n)
hvals key O(n)
hkeys key O(n)
列表
TimeLine
更新使用Lpush
Lrange 获取数据
其他
blpop,lpop的阻塞版本,timeout是阻塞超时
组合使用
LPUSH +LPOP =stack
LPUSH +RPOP =Queue
LPUSH +LTRIM =列表大小有限制
LPUSH +BRPOP =Message Queue
集合
sadd 添加
scrad
sismenember
srandmemeber
spop 集合弹出
smembers
实战
添加标签,共同关注
其他操作
sdiff sinter sunion
场景应用
SADD 标签
SPOP/SRANDMEMBER 随机数的场景
SADD+SINTER 共同好友等功能
有序集合
zadd key socre element #添加元素
zscore key element
zcrad key #返回元素的个数
zrank
zrem
zrange 0 -1 #返回指定索引范围内的升序元素
zcount startscore endscore
实战
排行榜 根据时间戳或者阅读数之类的。
redis基础操作概念等笔记的更多相关文章
- 【转】Redis 基础操作和命令
笔记 Redis提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...
- Redis 基础操作
[Redis 基础操作] 1.ECHO message. Returns message. 2.PHING Returns PONG if no argument is provided, other ...
- redis基础操作~~数据备份与恢复、数据安全、性能测试、客户端连接、分区
数据备份与恢复 数据备份redis save 命令用于创建当前数据库的备份. redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文 ...
- 三、Redis基础操作
前言: Redi是key-value的NoSQL,我们用Redis提供的redis-cli就能操作String类型key和各种数据类型value.但是放入的不是特定类型数据,添加的都是一个一个Stri ...
- redis 基础操作教程
1.linux 安装redis : Linux 下安装 下载地址:http://redis.io/download,下载最新稳定版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wg ...
- redis基础操作
/** * redis的Java客户端Jedis测试验证 * * @author */ public class Test { /** * 非切片客户端链接 */ private Jedis jedi ...
- Java代码redis基础操作
maven依赖包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
- redis简单操作
一.redis 基础操作 1.1.string 类型及操作 string 是最简单的类型,一个key对应一个value,string类型是二进制安全的.redis的string可以包含任何数据. 1. ...
- REDIS基础笔记
Redis基础笔记 资源链接 简介 简介 安装 五种数据类型及相应命令 1. 字符串类型 2. 散列类型 3. 列表类型 4. 集合类型 5. 有序集合 其他 事务 SORT 生存时间 任务队列 发布 ...
随机推荐
- 初学java3 条件判断
三目运算符 条件? 正确结果:错误结果 if判断 单一条件判断 if(条件){ }else{ } 多种条件判断 if(){ }else if(){ } ... else{ } switch判断 swi ...
- Qt的多线程总结以及使用(一)
Qt提供QThread类以进行多任务的处理.Qt提供的线程可以做到单个进程做不到的事情.在这里实现最简单的一个多线程.最简单的线程的基类为QThread,然后需要重写QThread的run(),在ru ...
- 使用cnpm淘宝镜像
选装cnpm 1.说明:因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果npm的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事. 2.官方网址:http://npm.ta ...
- Jerry眼中的SAP客户数据模型
本文Jerry将介绍八款SAP产品中的客户模型.希望您在阅读完本文之后,能对SAP客户模型设计的思路有一个最最粗浅的了解. 由于Jerry水平和精力所限,本文不会详细阐述这些产品里的客户模型设计细节, ...
- 13.MySQL锁机制
锁的分类 从对数据的类型 (读\写)分: 1.读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响 2.写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁 从对数据操作的粒度 ...
- MySQL8.0.17下载与安装
下载环境:Windows 10 下载地址: https://dev.mysql.com/downloads/mysql/ 1.解压压缩包,修改解压目录. 2.在E:\mysql-8.0.17-winx ...
- Cacti-0.8.8b详细安装及配置步骤
1. Cacti环境安装 1.1 安装LAMP环境 安装LAMP环境,当然,如果你有兴趣可以采用编译,我线上Mysql是编译的,其余是yum安装的.在这次实验采用yum安装. 关闭i ...
- 9. A Pythonic Object
Thanks to the Python data model, your user-defined types can behave as naturally as the built-in typ ...
- npm 安装指定版本的包
使用 包名@版本号 指定, 例如,安装 Express 3.21.2, $ npm
- 算法9-----输出全排列(递归)---移除K个数,剩下最小数。
1.题目:给定一个字符串,输出所有的字典序. 如: 输入字符串:'ac',输出:['ac','ca'] 输入字符串:‘abc' ,输出:['abc','acb','bac','bca','cab',' ...