[ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis
# redis安装
# redis安装教程
-- 服务器(ubuntu)安装redis服务
sudo apt-get install redis-server
-- 源码安装
-- $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
$ tar xzf redis-4.0..tar.gz
$ cd redis-4.0.
$ make # 编译,需要先安装gcc
$ make install # 安装成功之后,会自动将可执行文件(6个)拷贝到/etc/init.d/里面
-- 安装成功之后
-- 输入命令redis-server,启动redis服务
-- 测试,进入自带的redis客户端: 输入命令redis-cli
-- 输入ping,会返回PONG,说明安装成功
# redis配置教程
http://blog.csdn.net/qq_30242609/article/details/52913145
-- redis配置访问密码
-- redis设置允许远程访问
# bind 127.0.0.1
-- redis设置开机自启动(未做)
# redis检测
#检测后台进程是否存在
ps -ef |grep redis
#检测6379端口是否在监听
netstat -lntp | grep
#使用`redis-cli`客户端检测连接是否正常
./redis-cli
127.0.0.1:> keys *
(empty list or set)
127.0.0.1:> set key "hello world"
OK
127.0.0.1:> get key
"hello world"
# redis 启动
- 命令启动 redis-server
- 配置文件启动
修改配置文件:redis.conf (/root/redis_dir/redis-4.0./redis.conf)
#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口
port
#修改生成默认日志文件位置
logfile "/home/futeng/logs/redis.log"
#配置持久化文件存放位置
dir /home/futeng/data/redisData
-- 配置启动
redis-server /root/redis_dir/redis-4.0./redis.conf
-- 打开redis客户端 redis-cli -p
>> ping hello
# redis关闭
- redis-cli
>> shutdown
# 查看是否已经关闭
- netstat -lntp |grep
#2 redis快速教程
# reids操作教程http://try.redis.io/
# value字符串数据 - 增加一条字符串记录ranking:category为key, "hello"为value
set ranking:category "hello" - 获取ranking:category的值
get ranking:category # value整数数据
- 增加一条数字记录
set views - 自增views
incr views # 得到结果为11 - 删除key,value # 只是将views的值清0,而已
del views
此时还可以incr views # 客户端运行结果展示
127.0.0.1:> set views
OK
127.0.0.1:> incr views
(integer)
127.0.0.1:> del views
(integer)
127.0.0.1:> incr views
(integer)
127.0.0.1:> # value列表数据
增加一条列表记录,(value为列表), redis支持列表,rpush, lpush,llen, lrange, lpop,rpop - 从列表头部插入数据
lpush friends "lzp" , key为friends, value为列表,“lzp"为列表的元素 - 从列表尾部插入数据
rpush friends "dd" - 对列表切片
lrange friends - # 从头到尾
lrange friends - 计算列表的长度llen
llen friends - 从列表头部出栈,并获取该元素
lpop friends
- 从列表尾部出栈,并获取该元素
rpop friends # 客户端展示
127.0.0.1:> lpush friends "lzp"
(integer)
127.0.0.1:> rpush friends "lzp"
(integer)
127.0.0.1:> rpush friends "dd"
(integer)
127.0.0.1:>
127.0.0.1:> lrange friends -
) "lzp"
) "lzp"
) "dd" 127.0.0.1:> llen friends
(integer)
127.0.0.1:> lpop friends
"lzp"
127.0.0.1:> rpop friends
"dd"
127.0.0.1:> # value为set(无序,且元素只能出现一次)add, remove, ismember, members, union(求并集)
-- sadd, srem, sismember, smembers, sunion - 往set增加元素
sadd supervisors "fligh"
sadd supervisors "lzp"
- 从set删除某个元素
srem supervisors "lzp" - 判断是否为set的成员, 1表示是,0表示不是
sismember supervisors "lzp" - 得到set的所有元素
smembers supervisors - 求两个set的并集
sadd set1 "lzp"
sadd set1 "wy"
sadd set2 "hr"
sunion set1 set2 # value为有序集合sorted set; sorted set有 key, value, score, 普通的set 有key ,value
- 往sorted set添加数据
zadd student "alen" # 1940就是score, 这里是出生年份
zadd student "lzp"
zadd student "wy"
zadd student "ww"
- 获取student的数据,
zrange student - # 客户端练习
127.0.0.1:> zadd student "alen"
(integer)
127.0.0.1:> zadd student "lzp"
(integer)
127.0.0.1:> zadd student "wenyi"
(integer)
127.0.0.1:> zadd student "ww"
(integer)
127.0.0.1:> zrange student -
) "ww"
) "lzp"
) "wenyi"
) "alen"
127.0.0.1:> # hash --->字符串和value的映射,比如name 和“liuzhipeng"的映射, age 和 13的映射, email 和”liucpliu@sina.cn"的映射
--格式 hset key string value
hset user: name "liuzhipeng"
hset user: age
hset user: email "liucpliu@sina.cn" -- 一次性插入数据
hset user: name "wenyi" age email "ww@sina.cn" -- 获取用户的所有信息
127.0.0.1:> hgetall user:
) "name"
) "lzp"
) "age"
) ""
) "email"
) "liucpliu@sina.cn" -- 获取用户的某部分信息
127.0.0.1:> hget user: name
"lzp"
127.0.0.1:> hget user: email
"liucpliu@sina.cn" -- hash里面数字自增
hincrby user: age
hincrby user: age
#3 将redis作为服务
、配置服务脚本
# step1
redis源码目录下有个utils目录,里面有redis_init_script文件,将其拷贝到/etc/init.d/目录下,并重名为redisd
sudo cp utils/redis_init_script /etc/init.d/redisd
# step2
修改该文件
sudo vim /etc/init.d/redisd
# redisd
REDISPORT=
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
、配置文件
# setp1 源码根目录下有个redis.conf的配置文件,复制并修改名称,注意这个名称和上面的/etc/redis/${REDISPORT}.conf的配置对应。
sudo mkdir /etc/redis
sudo cp redis.conf /etc/redis/.conf
# step2 打开文件修改的内容如下:
#设置后台运行
daemonize yes
#设置log文件路径
logfile /vagrant_data/var/log/redis/redis-server.log
#设置持久化文件存放路径
dir /vagrant_data/var/lib/redis
注意:上面的几个目录是没有的,需要事后创建文件夹
# step3
sudo mkdir -p /vagrant_data/var/log/redis
sudo mkdir -p /vagrant_data/var/lib/redis
、使用update-rc.d注册服务
#设置服务脚本有执行权限
sudo chmod +x /etc/init.d/redisd
#注册服务
cd /etc/init.d/
sudo update-rc.d redisd defaults
、服务常用命令
#启动Redis服务
sudo service redisd start
#关闭服务
sudo service redisd stop
#重启服务:
sudo service redisd restart
、排错
上面设置的服务不一定能正常启动,通常可以使用/etc/init.d/redisd start运行,然后进去/var/log/redis/目录下查看日志来排除错误,这个路径就是服务脚本设置的路径。
参考:
http://blog.csdn.net/softwave/article/details/53838194
[ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis的更多相关文章
- Python操作redis系列以 哈希(Hash)命令详解(四)
# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...
- Python操作redis学习系列之(集合)set,redis set详解 (六)
# -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...
- redis学习 (key)键,Python操作redis 键 (二)
# -*- coding: utf-8 -*- import redis #这个redis 连接不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. delete ...
- Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库
操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...
- python操作Redis安装、支持存储类型、普通连接、连接池
一.python操作redis安装和支持存储类型 安装redis模块 pip3 install redis 二.Python操作Redis之普通连接 redis-py提供两个类Redis和Strict ...
- Python操作redis系列之 列表(list) (四)
# -*- coding: utf- -*- import redis r =redis.Redis(host=,password="ZBHRwlb1608") 1. Lpush ...
- Python操作redis系列之 列表(list) (五)(转)
# -*- coding: utf-8 -*- import redis r =redis.Redis(host=") 1. Lpush 命令将一个或多个值插入到列表头部. 如果 key 不 ...
- Python操作redis系列之 列表(list) (五)
# -*- coding: utf- -*- import redis r =redis.Redis(host=,password=") 1. Lpush 命令将一个或多个值插入到列表头部. ...
- python 操作redis之——HyperLogLog (八)
#coding:utf8 import redis # python 操作redis之——HyperLogLog r =redis.Redis(host=") # 1.Pfadd 命令将所有 ...
随机推荐
- java 基础词汇 必须 第九天
Collection 集合 List 列表集合 Set 不重复集合 Linked 链表 Vector 线程安全集合 Hash 哈希值 tree 树型结构 Map 键值对集合 add 增加 remove ...
- Inventory Update-freecodecamp算法题目
Inventory Update 1.要求 依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新 ...
- CMD批处理复制目录下所有文件
从我接触编程时,WIN7已经是最普及的系统了. 有一天,我需要在服务器更新某个软件或游戏的时候,我都需要先在其中一台服务器下载更新, 然后同步到其他服务器,而且这种操作也是非常频繁的,我就想写个批处理 ...
- AWS CentOS7 实例修改主机名
问题描述: AWS EC2 实例在升级到CentOS7以后,我们发现主机名的修改不再像之前的版本(CentOS 5/6)一样简单. 每次新建实例之后,修改好主机名,重启或者克隆之后的机器,主机名还是会 ...
- (转)Unity 和 Cocos2d-x 越渐流行,国内公司开发「自研游戏引擎」的意义何在?
分几个角度来说:一.我认为,Unity3D将无可挽回的,或者说,势在必得的,成为接下来很多年内,世界移动领域游戏引擎市场霸主.回顾历史,正如同咱们经历过一次又一次的互联网时代变革一样,x86,wind ...
- (转)Clang 比 GCC 编译器好在哪里?
编译速度更快.编译产出更小.出错提示更友好.尤其是在比较极端的情况下.两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用的是Boost.Spirit--一个重度依赖C++ ...
- Facebook Reporting API -- Facebook 数据导出API
1.获取token 浏览器打开 "访问口令工具" (FB链接请FQ) https://developers.facebook.com/tools/accesstoken/ App ...
- #Python编程从入门到实践#第四章笔记
#Python编程从入门到实践#第四章笔记 操作列表 1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...
- 不同级域名中的 Cookie 共享
HTTP 响应头中 Set-Cookie 行未指定 domain 时则设置访问的域名 seliote.com 可以设置 seliote.com(也可以写成 .seliote.com 意思一样) 与 w ...
- 通过IIS共享文件夹来实现静态资源"本地分布式"部署
以下以文件型数据库(如sqlite)为例 楼主话:以下内容,若有不专业处,大胆喷,虚心求教. 起因:要进行一个项目的分布式部署,而这个项目所涉及的其中一个数据库为sqlite(经测试,同为文件型数据库 ...